asp.net-mvc – 无法加载指定的元数据资源
实体框架我有一些严重的问题,我似乎无法弄清楚发生了什么。
我尝试了许多选项:MetadataException: Unable to load the specified metadata resource和着名的Craig Stuntz的博客文章位于:http://blogs.teamb.com/craigstuntz/2010/08/13/38628/ 为简洁起见,我有3个项目: Funscribe.Data(位于这里的EDMX文件) Funscribe.Console(控制台应用程序) Funscribe.Web(MVC 3应用程序) 最初只是MVC应用程序,我最近添加了这个新的控制台项目。 我从web.config中复制了连接字符串并将其应用到我的app.config中: <add name="FundirectoryEntities" connectionString="metadata=res://*/Fundirectory.csdl|res://*/Fundirectory.ssdl|res://*/Fundirectory.msl;provider=System.Data.SqlClient;provider connection string="data source=localhostsqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /> 我的mvc应用程序继续工作,但是当我运行控制台应用程序时,我感到恐惧: “无法加载指定的元数据资源”。 我尝试将连接字符串更改为通配符设置: <add name="FundirectoryEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="data source=localhostsqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /> 我得到: 我尝试更改它以指定程序集: <add name="FundirectoryEntities" connectionString="metadata=res://Funscribe.Data.dll/Fundirectory.csdl|res://Funscribe.Data.dll/Fundirectory.ssdl|res://Funscribe.Data.dll/Fundirectory.msl;provider=System.Data.SqlClient;provider connection string="data source=localhostsqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /> 我得到: 我失去了我应该在这里做什么。我刚刚将该项目升级到Visual Studio 2012(在转换为VS 2012后,我介绍了这个新的控制台应用程序)。 我也注意到,Funscribe.Data.dll位于控制台项目的bin文件夹中,我手动删除这些文件并观察它被重新创建。什么困惑我是网络应用程序继续正常工作! 所有项目都在.NET 4.0上。控制台应用程序使用.NET 4.0而不是客户端配置文件验证码。 对此事的任何帮助都非常感谢。 解决方法
在名为Simple Mvc.Data.dll的程序集中,名为Model.edmx的Entity Framework模型的应用程序的元数据参数可能如下所示:
<connectionStrings> <add name="MyEntities" connectionString="metadata= res://Simple Mvc.Data.dll/Model.csdl| res://Simple Mvc.Data.dll/Model.ssdl| res://Simple Mvc.Data.dll/Model.msl;provider= <!-- ... --> 所以你可以看到,在运行时我们需要的EDMX的三个部分都有一个参考。他们都以同样的方式工作,所以让我们再仔细检查一下。 CSDL引用如下所示: res://Simple Mvc.Data.dll/Model.csdl 它规定了三件事情: >我们从资源加载CSDL。那就是“res://”部分。
有关更多信息,请查看Troubleshooting Entity Framework Connection Strings 我希望这将有助于你。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |