我正在尝试更新我的 edmx,右键单击 -> 从数据库更新模型。每次我尝试更新错误时都会出现“已存在具有相同密钥的条目
有小伙伴可以帮忙吗?
有时副本可能不会显示在 edmx 图表中,它可能是代码端。EF 有时会有点混乱,但在处理这些循环漏洞方面不太好。
作为 Fernanda 建议的补充,最干净的方法是删除您的 edmx 文件并重新配置连接字符串。
如果您不想这样做,您可以删除 edmx 中的所有表和函数,保存并查看是否仍然出现相同的错误。如果不再发生相同的错误,请重新添加所有内容并保存。
请注意,实体框架 7 中将弃用EDMX 方法:
“从数据库更新模型”是一个允许您将其他数据库对象(或对现有数据库对象的更改)增量地拉入您的 EDMX 模型的过程。不幸的是,这个功能的实现不是很好,你经常会丢失你对模型所做的自定义,或者不得不手动修复向导试图应用的一些更改(经常放弃手动编辑 xml) .
对于 Code First,您可以重新运行逆向工程流程并让它重新生成您的模型。这在基本场景中可以正常工作,但是您必须小心如何自定义模型,否则在重新生成代码时您的更改将被还原。如果不编辑脚手架代码,有些自定义很难应用。
因此,EF 7 的推荐方法是将数据库逆向工程为代码,而不是 edmx,以前称为代码第二种方法。