我的连接字符串如下:
<add name="RollCallDBEntities" connectionString="metadata=res://System.Engine/RollcallNS.csdl|res://System.Engine/RollcallNS.ssdl|res://System.Engine/RollcallNS.msl;provider=Devart.Data.Oracle;provider connection string="User Id=user;Password=password;Server=127.0.0.1;Direct=True;Sid=ORCL"" providerName="System.Data.EntityClient" />
我的代码如下:
using (var db= new RollCallDBEntities()) //ok
{
var query = db.TBL_ROLLCALL.ToList(); //Unable to load the specified metadata resource.
}
我的集会:
System.Engine
有人有主意吗?
这些链接没有解决我的问题:
MetadataException: Unable to load the specified metadata resource
entity framework Unable to load the specified metadata resource
Entity Framework: Unable to load the specified metadata resource
Unable to load the specified metadata resource
8 回答
请参阅http://forums.devart.com/viewtopic.php?t=22092 .
如果这没有帮助,请说明:
您使用的是ADO.NET实体数据模型(.edmx)还是Devart Entity Model(.edml)?
模型文件的Build Action属性的值
模型的元数据工件处理属性的值
dotConnect for Oracle的内部版本号(x.xx.xxx)
Visual Studio的版本
按照Pawel的建议检查资源是否嵌入到程序集中
我得到了这样的例外 . 问题是我重命名了我的
.edmx
文件并忘了更改EFWeb.config
文件的连接字符串中的名称:解决这个问题的最简单的解决方案是 remove the obj folder 与bin文件夹和 re-run the application 处于同一级别,我的上帝花了比它需要的更长的时间
我在一个解决方案中使用了EntityFramework 6.0,其中包括多个项目,如WebSite级别项目,DataAccess级别项目 . 在我的解决方案中,迁移应该在DataAccess级别项目中进行 .
当我在程序包管理器控制台中运行Add-Migration命令时,引发了“无法加载指定的元数据资源” .
最后,我发现我将WebSite级别项目设置为“Startup”项目,并将此触发器置于异常之上 . 似乎系统会首先自动检查StartUp项目中的连接字符串设置 . 我在WebSite级别项目中设置的数据连接字符串是
“metadata = res:///ApplicationEntities.csdl | res:///ApplicationEntities.ssdl | res://*/ApplicationEntities.msl; provider = System.Data.SqlClient; provider connection string = "data source=.;initial catalog=YourDatabaseName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"”
这首先对代码不正确 .
正确的连接字符串应该是:
“数据源= . ;初始目录= YourDatabaseName;集成安全性=真”
结论,请首先在解决方案的“StartUp”项目中检查web.config中的“connectionStrings”部分 .
如果您不确定元数据文件的正确路径是什么,可以通过编译应用程序找到,然后使用JetBrains的dotPeek打开DLL并查看Resources文件夹以查找.csdl等文件 .
我也遇到了这个问题,因为我忘了引用包含EDMX文件的项目 .
我有一个与devart mysqlconnect类似的产品 - 也许这可能会有所帮助 .
我有一个名为EFModels的项目,它包含.edml文件,并被其他项目引用 .
我注意到引用EFModels的项目的Release版本包含EFModels.dll,但它的大小(127kb vs 437kb)比EfModels.dll的Debug版本小得多 . 将EFModels.dll从调试版本移动到Release版本解决了我的问题,因为某些原因Release版本没有嵌入ssdl等 .
我也遇到了这个问题,因为我从实体框架模型优先到实体框架代码优先,并且忘记将EDMX连接字符串更改为“常规”连接字符串 .