EF 6“无法加载指定的元数据资源” - 但我没有使用edmx

时间:2016-05-19 14:27:52

标签: c# entity-framework metadata edmx

很抱歉,如果有人问这个问题,但我已经查看了所有其他帖子,我发现每个人似乎都在使用EDMX,而不是“生产”数据库。

我收到以下错误:

System.Data.Entity.Core.MetadataException:无法加载指定的元数据资源

尝试访问我的应用程序时。我的连接字符串如下:

<add name="FormAssemblyEntities" connectionString="metadata=res://*/Models.Entities.FormAssembly.csdl|res://*/Models.Entities.FormAssembly.ssdl|res://*/Models.Entities.FormAssembly.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=server\instance;initial catalog=dbname;user id=userid;password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

如果我在本地运行它并且使用以下连接字符串连接到edmx,这非常有效,但是只要我将它放在我们的UAT服务器上并将其指向数据库,我就会收到该错误。

<add name="FormAssemblyEntities" connectionString="Data Source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\FormAssembly.mdf;Initial Catalog=FormAssembly;Integrated Security=SSPI;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />

我真的不知道从哪里开始。数据库显示为最新,用户具有访问权限,服务器可以访问SQL服务器。

我也尝试用res:// FormAssembly /和res://FormAssembly.dll/替换res:// * /,但前者导致相同的错误,而后者说dll不能找到(DLL在bin目录中)。

任何帮助都将不胜感激。

谢谢,

特拉维斯

1 个答案:

答案 0 :(得分:0)

在我的情况下,我的连接字符串的metadata部分格式不正确。

以下连接字符串适用于我的情况:

<connectionStrings>
  <add name="NorthwindEntities" connectionString="metadata=res://*/Northwind.csdl|res://*/Northwind.ssdl|res://*/Northwind.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(local);initial catalog=Northwind;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" 
       providerName="System.Data.EntityClient" />
</connectionStrings>