突然间,我一直MetadataException
在实例化我生成的ObjectContext
类.App.Config中的连接字符串看起来是正确的 - 自上次工作以来没有改变 - 我尝试从底层数据库重新生成一个新模型(edmx文件)而没有任何变化.
有人有主意吗?
更多细节:我没有更改任何属性,我没有更改任何输出程序集的名称,我没有尝试在程序集中嵌入EDMX.我离开工作只等了10个小时,直到我回来.然后它不再工作了.
我试过重新创建EDMX.我试过重新创建这个项目.我甚至尝试从头开始重新创建数据库.没有运气,无论如何.
我的连接字符串如下:
<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" />
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
using (var db= new RollCallDBEntities()) //ok
{
var query = db.TBL_ROLLCALL.ToList(); //Unable to load the specified metadata resource.
}
Run Code Online (Sandbox Code Playgroud)
我的集会:
System.Engine
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
这些链接没有解决我的问题:
MetadataException:无法加载指定的元数据资源
实体框架无法加载指定的元数据资源
实体框架:无法加载指定的元数据资源
无法加载指定的元数据资源
我使用ASP.NET Webforms和Entity Framework 4,这是我的.edmx
文件截图,因为我不知道在这里发布什么代码:
这是我的web.config文件中的连接字符串:
<add name="tebimir_db_tebimEntities"
connectionString="metadata=res://*/DataAccessLayer.tebimir_db_tebim.csdl|res://*/DataAccessLayer.tebimir_db_tebim.ssdl|res://*/DataAccessLayer.tebimir_db_tebim.msl;provider=System.Data.SqlClient;provider connection string="data source=tebim.ir,9993;initial catalog=tebimir_db_tebim;persist security info=True;user id=tebimir_dbadmin;password=qwerty*2607548;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
我的.edmx
文件位于一个名为的文件夹中DataAccessLayer
.当我使用实体框架时,它工作正常,没有问题,但只有当我创建一个entityDataSource
控件并想要分配.edmx
给它时,我得到一个错误,无法找到元数据,否则它可以正常工作.
我的意思是我可以使用Entity Framework访问数据.我检查了堆栈溢出相关的所有问题,但找不到答案.请帮忙.
这些是附加信息,以防它可以帮助您:
关于实体框架,我已经开始工作和学习了.以前,在处理数据访问时,我总是尝试将其保存在单独的DLL中,尝试分离我的关注点并防止数据模型类被拖入表示层.
现在,当我创建一个EDMX文件时,它进入主项目,当我将它们和相关代码移动到数据DLL中时,当我运行解决方案时编译时,在Entities构造函数或其中的基本构造函数中抛出了错误ObjectContext类.
是否有可能实现这种完全分离?
我看到这个问题似乎是相关的,但阅读的评论似乎只有部分分离.
编辑 这是我得到的错误:
Unable to load the specified metadata resource.
Run Code Online (Sandbox Code Playgroud)
我找到了这个答案,所以我会看看是否能解决我的问题.