ADO实体框架创建不需要的实体密钥

时间:2009-03-12 11:02:55

标签: entity key ado.net-entity-data-model

我需要使用来自数据库的表,我无法改变(使用链接服务器)。 因此,我的架构的一部分是这些表上的视图,我无法在我的数据库中创建FK。

当我在ADO.NET实体框架中创建关联时,我遇到了问题,因为外部数据库中表的第二列上有一个索引,而EF正在为它创建一个实体密钥(它的名称记录的描述 - 我认为他们只是想加快它的排序。)

当我在EF实体中从该列中取出Entity Key时,它会抱怨我需要它,因为底层表上有一个键。 如果我留下它,我无法将其映射到EF的表格映射中的任何内容。

有人知道我应该做什么吗?

1 个答案:

答案 0 :(得分:4)

您必须编辑XML并从密钥中删除列。找到< EntityType> < edmx:StorageModels>中的标记部分(SSDL内容)。删除任何< PropertyRef>在< Key>中这实际上并不是主键的一部分。

执行此操作后,您可以将设计器中相应标量属性的“实体键”设置为false,并且EF不会生气。您也不会被要求在关联中映射此列。