加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在使用edmx文件时在连接字符串中指定元数据位置

发布时间:2020-12-16 04:05:08 所属栏目:asp.Net 来源:网络整理
导读:我有一个web项目,其中包含在edmx文件中定义的数据模型.连接字符串的开头如下: 元数据= RES:// * /; 这已经好了一段时间了.但是在项目上工作的其他人创建了一个dll,它也使用实体框架并将其添加到bin文件夹中.现在,当我尝试创建连接时,加载元数据时出错. 除
我有一个web项目,其中包含在edmx文件中定义的数据模型.连接字符串的开头如下:

元数据= RES:// * /;

这已经好了一段时间了.但是在项目上工作的其他人创建了一个dll,它也使用实体框架并将其添加到bin文件夹中.现在,当我尝试创建连接时,加载元数据时出错.

除了彻底改变我们中的一方或双方的工作方式之外,我想知道如果我的连接字符串可以更改为只查找我的edmx文件中定义的元数据,问题是否可以解决.问题是,对于我的生活,我找不到正确的语法来做到这一点.元数据嵌入在输出程序集中,因此没有指向的物理元数据文件.我究竟应该如何在连接字符串中指定元数据位置?

解决方法

是的我以前见过这个问题.有人问这个问题只是时间问题.

基本上res:// * /加载所有程序集中的所有元数据,因此如果有多组元数据,EF会混淆.

因此,默认情况下使用res:// * /作为EF在WebApplications中执行是一个错误,不幸的是,它是我们没有时间解决的问题.

解决方法是使用类似这样的连接字符串更具体:
RES:///App_Code.Northwind.csdl |高分辨率:///App_Code.Northwind.ssdl |资源://*/App_Code.Northwind.msl;

其中App_Code是App_Code文件夹(假设您的模型位于Web项目中),Northwind是您的EDMX的名称.如果您无法获取要使用的名称,请使用Reflector之类的内容查看程序集中的资源名称.

这样做可以确切地告诉EF从加载的程序集中加载哪个CSDL,SSDL和MSL,并且应该解决您的问题.

希望这可以帮助

亚历克斯

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读