Unable to load the specified metadata resource
我在实体框架方面遇到了一些严重的问题,我似乎不知道到底发生了什么。
我尝试了很多提供的选项:metadataexception:无法加载指定的元数据资源和著名的Craig Stuntz的博客文章,网址是:http://blog s.teamb.com/craigstentz/2010/08/13/38628/
为了简洁起见,我有3个项目:
funscribe.data(此处为EDMX文件)
Funscribe.控制台(控制台应用程序)
funscribe.web(MVC 3应用程序)
最初它只是MVC应用程序,我最近添加了这个新的控制台项目。
我从web.config复制了连接字符串,并将其应用于app.config:
1 |
我的MVC应用程序继续工作,但当我运行控制台应用程序时,我会感到恐惧:
"无法加载指定的元数据资源。"
我尝试将连接字符串更改为通配符设置:
1 |
我得到:在映射和元数据信息中找不到指定的默认EntityContainer名称"FundirectoryEntities"。
我试图更改它以指定程序集:
1 |
我得到:无法解析程序集"funscribe.data.dll"。
我对在这里该做的事迷路了。我刚刚将这个项目升级到了Visual Studio 2012(在转换为vs 2012之后,我引入了这个新的控制台应用程序)。
我还注意到funscribe.data.dll位于控制台项目的bin文件夹中,我手动删除了这些文件,并观察它被重新创建。令我困惑的是,网络应用程序继续正常工作!
所有项目都在.NET 4.0上。控制台应用程序使用.NET 4.0,而不是客户端配置文件版本。
在这件事上任何帮助都非常感谢。
在名为simple
1 2 3 4 5 | <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引用如下所示:
1 | res://Simple Mvc.Data.dll/Model.csdl |
它规定了三件事:
我们正在从资源加载CSDL。那是江户十一〔二〕号
包含资源的程序集的名称,
"Simple Mvc.Data.dll" 。如果您的程序集是强名称的,那么您可以在这里指定一个强名称,尽管它有着冗长的荣耀。资源本身的名称,
"Model.csdl" 。不要将其与EDMX或型号名称混淆。在这种情况下,它们恰好是相同的,除了扩展,但这并不总是正确的!
It will probably fail if your resources don’t happen to have the same
name as your model, or if the assembly doesn’t happen to be loaded.
有关详细信息,请查看此项排除实体框架连接字符串故障
我希望这对你有帮助。
在Visual Studio中重建解决方案帮助了我。
正在生成->重新生成
在我的例子中,connectionString试图查找资源文件,但无法找到。我为解决我的问题所做的是:
右键单击EDMX图表->转到属性->连接->元数据工件处理->然后更改为复制到输出目录并重新生成。
这将更改元数据连接字符串路径指向他要查找的资源。
在我的例子中,我在Project中删除了我的EDMX文件,并用一个新名称重新创建它,例如,在它是Home_模型之前,稍后它是Home_成本。当我试图调用下面的代码时,它有"无法加载指定的元数据资源"错误。////
1 2 3 4 5 6 | using (var currentEntities = new masterEntities()) { currentUser = currentEntities.Home_User.FirstOrDefault( x => x.UserLoginAccount == userLoginAccount && x.UserPwd == userPwd); } |
/ / /所以在web.config中,我修改了从家庭模式到家庭成本的元数据配置。
然后它工作。显然,当我删除/创建edmx时,vs2015(我的版本)没有更新web.config。
MetadataException:无法加载指定的元数据资源
这意味着应用程序无法加载EDMX。
有几种情况会导致这种情况,但很可能是由于无效的连接字符串。
可能的解决方案:
1.检查连接字符串2.刷新model.edmx3.在model.edmx中选择"从数据库更新模型"选项。
http://mvc4asp.blogspot.in/