很抱歉,如果有人问这个问题,但我已经查看了所有其他帖子,我发现每个人似乎都在使用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="data source=server\instance;initial catalog=dbname;user id=userid;password=password;MultipleActiveResultSets=True;App=EntityFramework"" 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目录中)。
任何帮助都将不胜感激。
谢谢,
特拉维斯
答案 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="data source=(local);initial catalog=Northwind;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>