asp.Net   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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=&quot;data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我的mvc应用程序继续工作,但是当我运行控制台应用程序时,我感到恐惧:

“无法加载指定的元数据资源”。

我尝试将连接字符串更改为通配符设置:

<add name="FundirectoryEntities" connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string=&quot;data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我得到:
在映射和元数​​据信息中找不到指定的默认EntityContainer名称“FundirectoryEntities”。

我尝试更改它以指定程序集:

<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=&quot;data source=localhost\sqlexpress;initial catalog=Funscribe;user id=sys_Funscribe;password=blah;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我得到:
无法解析程序集“Funscribe.Data.dll”。

我失去了我应该在这里做什么。我刚刚将该项目升级到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://”部分。
>包含资源的程序集的名称“Simple Mvc.Data.dll”。如果你的程序集是强名字的,你可以在这里指定一个强大的名字,其所有的冗长的荣耀。
>资源本身的名称,“Model.csdl”。不要将其与EDMX或型号名称混淆。在这种情况下,它们恰好是相同的,除了扩展,但这并不总是真的!

有关更多信息,请查看Troubleshooting Entity Framework Connection Strings

我希望这将有助于你。

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc – 无法加载指定的元数据资源全部内容,希望文章能够帮你解决asp.net-mvc – 无法加载指定的元数据资源所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: