EntityFramework - 为什么这么多实体键?

时间:2013-03-18 19:42:46

标签: c# entity-framework edmx ado.net-entity-data-model

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

2 个答案:

答案 0 :(得分:0)

默认情况下,最有可能确定标记为键的列使条目唯一。它也将通过导入的视图执行此操作。

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

答案 1 :(得分:0)

使用Xml编辑器打开edmx文件(右键单击解决方案中的Edmx文件并选择“Open with ...”。一旦执行此操作,您将在文件中看到Xml注释,解释现有键列无法解释的原因通常是因为该列是EF不支持的类型(例如HierarchyId),因此不支持该列,因此被排除。这样就最终得到一个没有键列和一个人工键的表将创建,在这种情况下,由所有类型的列组成,这些类型是键列的有效类型(例如,空间类型列将从此列表中排除,因为它们不是有效键列是EF)