EntityFramework无法生成DB第一个EDMX - null引用,无法加载类型

时间:2014-04-04 21:49:24

标签: entity-framework visual-studio-2012

我正在使用VS2012而且我已经做了一些事情来破坏我的EntityFramework配置。使用EF5,设置和EDMX正常工作了一段时间。

后来我升级到EF6,此时每次更新模型时都被迫对生成的代码进行一些手动命名空间更改。 但它仍然奏效。

现在我试图消除每次都要求我更改命名空间的问题,但是我已经破坏了某些东西。

目前我根本无法生成数据库第一个EDMX模型。当我尝试这个时,向导继续执行这些步骤,然后抛出一个错误 - 首先是一个关于空引用的对话框,然后是VS输出:

Unable to generate the model because of the following exception: 'System.TypeLoadException: Could not load type 'System.Data.Entity.Core.Mapping.EntityContainerMapping' from assembly 'EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
    at Microsoft.Data.Entity.Design.VersioningFacade.ReverseEngineerDb.DbDatabaseMappingBuilder.Build(SimpleMappingContext mappingContext)
    at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelGenerator.GenerateModel(List`1 errors)
    at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModels(String storeModelNamespace, ModelBuilderSettings settings, List`1 errors)
    at Microsoft.Data.Entity.Design.VisualStudio.ModelWizard.Engine.ModelBuilderEngine.GenerateModel(ModelBuilderSettings settings, ModelBuilderEngineHostContext hostContext)'.

我已删除EF并使用NUGET重新安装EF6。我也在一个新创建的项目中尝试过这个结果。

谷歌的搜索效果不佳。有什么想法吗?

当前安装的EF版本为6.1.0

4 个答案:

答案 0 :(得分:1)

还尝试使用实体框架工具6.1.1的Visual Studio 2013,你说的相同错误仍然存​​在,你无法创建DB第一个EDMX模型。正确的解决方案是向Visual Studio团队提交错误报告,同时卸载实体框架工具6.1版本并安装 6.0.1,它将起作用。 EF工具6.0.1可以在您的安装介质中找到,作为包文件夹中的EFTools。

<强> P.S。此外,当您修复VS2012时,您实际上正在重新安装EFTools 6.0.1并删除6.1.0 / 6.1.1。您无意中更新了EF Tools而没有意识到,首先打破了您的配置!

答案 1 :(得分:0)

我最终能够通过执行VS2012的REPAIR安装来解决此问题。在REPAIR安装和重启后,我再次能够生成EDMX模型。

答案 2 :(得分:0)

如果您更新了原始的2013 RTM版本,则实体框架工具6.1.1很可能无法正常工作。它可能已损坏注册表项。我下载了完整的6 GB版本并安装在一个从未有过visual studio的新操作系统上,瞧它有效!

答案 3 :(得分:0)

尝试此操作来解决问题:

如果您使用VS2013,请转到:

C:\ ProgramData \ Package Cache {08AEF86A-1956-4846-B906-B01350E96E30} v12.0.20912.0 \ packages \ EFTools ,选择EFTools.msi文件,然后加倍单击它进行安装。重新安装可以解决您的问题。

如果您使用VS2015,请转到:

C:\ ProgramData \ Package Cache {2A56910C-69C8-495D-8ED8-9080F0A14E58} v14.0.41103.0 \ packages \ EFTools ,选择EFTools.msi文件,然后双击它要安装。重新安装可以解决您的问题。