实体框架edmx无法更新。出现错误"已存在具有相同密钥的条目。"

时间:2016-05-19 06:08:28

标签: c# entity-framework edmx edmx-designer

我正在尝试更新我的edmx,RIGHT CLICK - >从数据库更新模型。并且每当我尝试更新错误时出现"具有相同密钥的条目已经存在

有些伙伴可以帮忙吗?

enter image description here"

2 个答案:

答案 0 :(得分:4)

有时副本可能不会显示在edmx图中,它可能是代码端。 EF有时会变得有点乱,但在处理这些循环漏洞方面不太好。

作为Fernanda建议的补充,最干净的方法是删除edmx文件并重新配置连接字符串。

如果您不想这样做,可以删除所有表格&您的edmx中的函数,保存并查看是否仍然出现相同的错误。如果不再出现相同的错误,请重新添加所有内容并保存。

答案 1 :(得分:0)

请注意,EDMX方法will be deprecated in Entity Framework 7

  

“从数据库更新模型”是一个允许您进行的过程   逐步拉出其他数据库对象(或更改现有数据库对象)   数据库对象)到您的EDMX模型中。不幸的是   这个功能的实现并不是很好,你经常会结束   丢失您对模型所做的自定义,或者必须手动进行   修复向导试图应用的一些更改(经常丢弃   手动编辑xml)。

     

对于Code First,您可以重新运行逆向工程流程并拥有它   重新生成你的模型。这在基本场景中运行良好,但是你   必须要小心如何自定义模型,否则你的更改   将在重新生成代码时恢复。有一些   没有编辑的难以应用的自定义   脚手架代码。

因此,推荐的EF 7方法是将数据库逆向工程化为代码,而不是edmx,之前称为代码第二种方法。

相关问题