更新EF模型:缺少表

时间:2011-05-05 23:24:01

标签: .net sql-server entity-framework

我有一个指向远程SQL Server 2005数据库的实体框架(3.5)数据模型。我在数据库的表中添加了一些字段,并希望更新模型。我的理解是刷新不起作用,你必须删除并重新添加表,但当我删除它然后去“从数据库更新模型”,表不在列表中!

如果我向数据库添加一个新表,它会出现在列表中,但是如果我尝试删除然后重新添加一个,那就不存在!我在其他项目中已经做了很多次,我不明白为什么它不适用于这个。

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

如果您打开模型的模型浏览器,则有两个部分,您的模型和商店。我知道我们曾经遇到过的一个问题是,对象会从模型中删除,但它的定义仍然存在于商店中。此时我们每次更新EF都会更新商店中的定义,但不会重新生成模型中的部分,因此它看起来根本就没有导入(基本上是准存在,听起来像你')陷入困境。确保通过Visual Studio从两个位置删除它,然后重新更新,这应该强制EF将其视为新实体并为两个部分生成对象。

第二个(也是更痛苦的)解决方案是打开模型的XML文件并搜索实体名称,然后删除匹配的对象。这有点棘手,不幸的是,对我来说,能够准确地告诉你如何不用脚射击自己的指示已经太久了。

答案 1 :(得分:0)

您应该从设计器中的模型中删除表,然后重新添加表。