我收到EF的“无法加载指定的元数据资源”错误,但仅限于VS2015

时间:2016-04-21 12:10:15

标签: asp.net-mvc entity-framework visual-studio-2015 entity-framework-6

我有一个使用MVC4,EF6.1连接到SQL Server 10的Web应用程序

1)从dev2012 web服务器上的VS2012开始,一切正常。

2)从dev Web服务器上的VS2015开始,出错。

3)在dev web服务器上的VS2012中重试,得到错误。

2)和3)之间的区别是在VS2015中加载解决方案文件后会添加“.vs”文件夹。

4)删除“.vs”文件夹,在VS2012中重试,一切正常。

所以似乎“.vs”中的某些内容会让我的EF无法运行,并导致错误。

其他信息:

Web配置,对我来说没问题:

<add name="EntityConnectionString"
connectionString="metadata=res://Entity.Models/Model.csdl|res://Entity.Models
/Model.ssdl|res://Entity.Models/Model.msl;provider=System.Data.SqlClient;
provider connection string=&quot;Data Source=myserver;Initial 
Catalog=DevDatabase;Integrated Security=True;Persist Security Info=True&
quot;" providerName="System.Data.EntityClient" />

Provider Manifest Token,在EDMX中尝试了2008年和2012年:

ProviderManifestToken="2008"

似乎“.vs”中存在阻止Web应用程序在VS2015中启动的内容。任何帮助表示赞赏。

感谢。

2 个答案:

答案 0 :(得分:1)

不确定这是你的问题,但我从VS 2013到VS 2015经历了类似的诡异,其中网络服务器只会挂在EF电话上。这就是我最终做的事情:

  

1)从位于旁边的VS 2013移动.suo file   解决方案文件到临时文件夹(以防万一)。

     

2)如果您之前在VS 2015中打开了解决方案,请移动.vs   文件夹到temp。

     

3)启动VS 2015,没有.suo文件。

     

4)设置解决方案属性,但不要运行解决方案。启动项目等

     

5)退出VS 2015,.vs / sln / v14文件夹中应该有一个新的.suo文件。

     

6)回到VS 2015,一切正常。

同时检查您的Nuget包是否正常。

答案 1 :(得分:0)

我最终解决了这个问题。我没有分享,因为我认为不相关,我使用的是Devart的实体开发人员。我使用5.7版本升级到5.8.8。我还使用新的Entity开发人员将模型从VS2015 Model项目重新生成回到同一个项目。它现在有效。

我的感觉是当我从另一个文件夹复制EDMX和相关文件而不是在目标文件夹中重新生成它们时,EDMX和相关文件会混淆。

感谢您的帮助。