如何:将 GUID 属性映射到二进制列(实体框架)

本主题介绍如何手动编辑 .edmx 文件以将在数据源中存储 uniqueidentifier 值的二进制列映射到概念模型中的 GUID 属性。 使用实体数据模型向导模型更新向导(实体数据模型工具)生成或更新数据模型时,会为数据源中 uniqueidentifier 类型化的列自动生成实体类型的 GUID 属性。 数据源还可以使用 16 个字节的二进制列存储 GUID 值。 由于这些工具为数据源中的每个二进制列均生成一个二进制属性,因此您必须通过编辑 .edmx 文件手动更新此类列到 GUID 属性的映射。

本主题中的过程假定您已在 Visual Studio 中打开一个有效的 .edmx 文件。

Dd296756.note(zh-cn,VS.100).gif注意:
如果您使用模型更新向导更新模型,将覆盖按照下面过程的建议对 .edmx 文件的 SSDL 部分所做的更改。

将 GUID 属性映射到包含 GUID 值的二进制列

  1. 在实体数据模型 设计器中,选择要更改为 GUID 类型的属性。

  2. 在**“属性”**窗口中,将类型从 Binary 更改为 Guid

    如果此时您尝试生成项目,将发生映射错误。

  3. 保存模型,关闭实体数据模型 设计器,然后使用 XML 编辑器打开 .edmx 文件。

  4. 在 SSDL 部分中,查找与 CSDL 部分中的 GUID 属性对应的二进制属性。

  5. 将此属性的 Type 特性的值更改为 uniqueidentifier。 有关更多信息,请参见Property Element (EntityType SSDL)

  6. 保存对模型的更改并重新生成解决方案以重新生成数据类。

另请参见

其他资源

Working with Entity Keys (Entity Framework)