实体框架:更改表的更新(关键更改)

时间:2009-04-27 17:57:28

标签: c# entity-framework .net-3.5

我有一个非常大的数据库连接到我的实体框架。我有一组特定的表,其中从设计中删除了一个公共密钥(fk)。当我“从数据库更新模型”时,我收到了一系列关于这个现在缺失密钥的错误。

为什么更新过程没有准确检测到此密钥已被删除?此外,如果我从模型中手动删除属性,我最终会遇到其他错误。我还尝试简单地删除表并重新添加它,但现在该表未显示在更新向导的“添加”部分中。

因此,如果没有删除整件事并重新开始,有没有办法优雅地恢复? EF团队是否已发布此向导的任何较新版本,其中已修复了其中的一些问题?

1 个答案:

答案 0 :(得分:5)

实体框架确实时不清楚。你需要做的是从模型中删除实体表,然后将SQL Server中的表重命名为TableName_Temp,刷新模型,现在实体表应该没问题,所以删除实体表再次将其重命名为原始名称,再次刷新模型。这一切都应该没问题。

我知道这是一个混乱的程序,但这是我找到解决这个问题的唯一方法,而不是吹走整个edmx并从头开始。目前在我的组织,我们有一项政策,除非绝对必要,否则不要对EDMX进行更改,以便我们可以在任何需要时删除和重新创建,而不会出现任何问题。

希望这有帮助!