Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 实体框架-无法从我的EDMX生成数据库,因为新实体不在数据库中?_Visual Studio 2010_Entity Framework_Poco - Fatal编程技术网

Visual studio 2010 实体框架-无法从我的EDMX生成数据库,因为新实体不在数据库中?

Visual studio 2010 实体框架-无法从我的EDMX生成数据库,因为新实体不在数据库中?,visual-studio-2010,entity-framework,poco,Visual Studio 2010,Entity Framework,Poco,在我的应用程序中有一大块使用EntityFramework4.1之后,我需要再添加几个表。我在模型查看器中创建了实体和关联,然后要求它从模型生成数据库 我立即得到一个选择的验证错误,一个弹出窗口通知我必须清除所有验证错误,然后才能生成数据库 所讨论的错误大致如下: 错误11007:未映射实体类型“EntityName” 或 错误11008:未映射关联“AssociationName” 对于我创建的每个新实体和关联,我都会收到一次此错误 现在我知道它们还没有映射到数据库,这似乎很符合逻辑,因为它们

在我的应用程序中有一大块使用EntityFramework4.1之后,我需要再添加几个表。我在模型查看器中创建了实体和关联,然后要求它从模型生成数据库

我立即得到一个选择的验证错误,一个弹出窗口通知我必须清除所有验证错误,然后才能生成数据库

所讨论的错误大致如下:


错误11007:未映射实体类型“EntityName”

错误11008:未映射关联“AssociationName”

对于我创建的每个新实体和关联,我都会收到一次此错误

现在我知道它们还没有映射到数据库,这似乎很符合逻辑,因为它们对模型来说是全新的。这就是为什么我尝试使用“从模型生成数据库”工具来生成数据库

我是否正确理解无法从模型生成新数据库,因为我添加到模型中的新实体和关联不在数据库中?如果是这样,我该如何解决这个问题?

据了解,(正如hdv评论中所建议的那样,.EDMX文件中还有另一个错误,该错误正在错误消息中丢失。这与一个字段有关,我曾使用该字段对关联进行键控,后来在没有意识到关联依赖于它的情况下删除了该字段


错误消息在.EDMX文件中包含一行,因此我在模型编辑器中将其关闭,并使用
Open With>XML编辑器
打开源代码,找到相关行并删除关联。这标记了其他地方引用该关联时的一些错误,删除这些错误后,我可以在Model Viewer中再次打开该文件,并允许我创建数据库。

错误11007:实体类型“EntityName”未映射也可能是由遗留类文件(例如
EntityName.cs
)引起的在解决方案文件夹中

我遇到了同样的问题:
错误11007:实体类型“EntityName”未映射。
在VS2010中使用TFS。我相信这可能是由于在设计器中使用复制粘贴和其他编辑新实体造成的。甚至撤销TFS中的更改、关闭VS2010等都不起作用

经过调查,尽管我已回滚到TFS中的最后一个签入版本,但在查看源文件夹(包含.edmx文件)时,我发现一个
entityname.cs
文件,该文件与我试图添加的违规实体相关,然后已删除并重新创建。使用VS2010解决方案资源管理器中的“显示所有文件”功能也可以看到这一点

删除有问题的文件后,可以编辑EDMX。一旦数据库模式被更新以匹配,我们就不再在使用数据库更新模型时出现错误(我们这样做是为了引用自定义SQL函数等-我知道有些O/T)


我希望这能帮助其他遇到同样问题的人。

在xml编辑器中打开edmx,检查您的关联是否存在AssociationSetMapping

若所有的错误都是未映射的关联和实体,“从模型生成数据库”应该可以工作,我自己也是这样使用的。你确定你所有的错误都与未映射的实体有关吗,或者在一系列可忽略的错误中可能隐藏着一个真正的错误?啊哈!我在编辑器中删除了一个鬼鬼祟祟的小关联,但不知何故它没有从隐藏在那里的.EDMX文件中正确删除。好提示@hvd。有没有可能把那条评论修改成一个答案?我很乐意,但是如果你能回忆起你是如何得到这个错误的(你是如何明确地删除了这个关联的),如果你自己回答你的问题并把它放进去的话会更有用。+1:对我有用。还可以从设计器界面中删除错误关联。只需选择关联行并删除。:)有时,但在我的例子中,我已经从designer视图中删除了它们,但它们仍然隐藏在xml文档中,原因只有Visual Studio知道。