我的连接字符串如下:
<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
答案 0 :(得分:58)
我得到了这样的例外。问题是我重命名了我的.edmx
文件,忘了更改EF Web.config
文件的连接字符串中的名称:
metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/MyModel.msl;
答案 1 :(得分:5)
请参阅http://forums.devart.com/viewtopic.php?t=22092。
如果这没有帮助,请注明:
答案 2 :(得分:5)
为我解决此问题的最简单的解决方案是删除与bin文件夹位于同一级别的obj文件夹,然后重新运行应用程序,我的上帝它花了比它需要更长的时间
答案 3 :(得分:2)
我在一个解决方案中使用了EntityFramework 6.0,其中包括多个项目,如WebSite级别项目,DataAccess级别项目。在我的解决方案中,迁移应该在DataAccess级别项目中进行。
在Package Manager控制台中运行Add-Migration命令时,引发了“无法加载指定的元数据资源”。
最后,我发现我将WebSite级别项目设置为“Startup”项目,并将此触发器设置为异常。似乎系统会首先自动检查StartUp项目中的连接字符串设置。我在WebSite级别项目中设置的数据连接字符串是
“元数据= 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”“
首先是代码不正确。
正确的连接字符串应为:
“Data Source = .; Initial Catalog = YourDatabaseName; Integrated Security = True”
结论,请首先在解决方案的“StartUp”项目中检查web.config中的“connectionStrings”部分。
答案 4 :(得分:0)
如果您不确定元数据文件的正确路径是什么,可以通过编译应用程序找到,然后使用JetBrains&#39;打开DLL。 dotPeek并查看Resources文件夹以查找.csdl等文件。
答案 5 :(得分:0)
我也遇到了这个问题,因为我忘了引用包含EDMX文件的项目。
答案 6 :(得分:0)
我有一个与devart mysqlconnect类似的产品 - 也许这可能会有所帮助。
我有一个名为EFModels的项目,它包含.edml文件,并被其他项目引用。
我注意到引用EFModels的项目的Release版本包含EFModels.dll,但它的大小(127kb vs 437kb)比EfModels.dll的Debug版本小得多。将EFModels.dll从调试版本移动到Release版本为我解决了这个问题,因为Release版本没有嵌入ssdl等。
答案 7 :(得分:0)
我也遇到了这个问题,这是因为我正从Entity Framework Model First转到Entity Framework Code First,却忘记了将EDMX连接字符串更改为“常规”连接字符串。
答案 8 :(得分:0)
此答案特定于Devart Entity开发人员edml文件。
当我升级csproj格式(Visual Studio 2017使用简单格式)时,出现此错误。 csproj具有一项功能,您不需要包含每个文件,而是默认情况下包括该文件夹下的所有相关文件,因此实体框架文件与cs文件的处理方式相同,因此默认情况下不会将其嵌入到程序集中。
我需要手动将edml文件的生成操作更改为“ DevartEntityDeploy”,这解决了我的问题。
答案 9 :(得分:0)
我也遇到了这个问题,因为我是app.config中缺少的EntityFramework配置部分。
我有这个:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
但不是这样:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb"/>
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
答案 10 :(得分:0)
我遇到了同样的问题,就我而言,问题在于更改模型,名为“ ... Web Deploy.pubxml”的文件具有“ metadata = res:// / Models”。 /em>**.csdl”等,名称不正确(未更新)。手动更正后可以正常工作!
答案 11 :(得分:0)
我们从 .net核心1 升级到 3.1 ,从 Visual Studio 2015 升级到 Visual Studio 2019 。我们注意到某些文件的构建操作已被重置。因此,我们将所有以.tt结尾的文件的构建操作从无更改为内容,并将它们的 Copy to Output directory < / strong>更改为请勿复制。
我们还必须将 .edmx 文件的构建操作更改为 EntityDeploy ,并将其复制到输出目录的值更改为请勿复制。
有人吗?
答案 12 :(得分:0)
在我的情况下,排除 .edmx 文件并包含它有效!
答案 13 :(得分:0)
右键单击项目>>Clean
>> 然后Rebuild
为我工作