EntityFramework——为什么有这么多实体键

本文关键字:实体 为什么 EntityFramework | 更新日期: 2023-09-27 18:04:45

我已经从我的SQL Server数据库创建了一个实体数据模型。尽管每个表中只有一个主键,但几乎所有属性都标记为实体键。我当然可以修改这些,但有人能告诉我为什么会这样吗?

EntityFramework——为什么有这么多实体键

很可能在默认情况下,它已经确定标记为键的列使条目唯一。对于导入的视图,它也会这样做。

也就是说,我已经导入了具有唯一约束和主键的表定义,并且还没有看到这种行为。

用Xml编辑器打开edmx文件(右键单击解决方案中的edmx文件并选择"Open with…")。这样做之后,您将在文件中看到Xml注释,解释为什么不能使用现有的键列。通常是因为列的类型是EF不支持的(例如HierarchyId),所以列不支持,因此被排除。这样,你最终得到一个没有键列的表,并且将创建一个人工键,在这种情况下,它由键列的有效类型的所有列组成(例如,空间类型的列将从此列表中排除,因为它们不是EF的有效键列)