指定的架构无效。错误: CLR 类型到 EDM 类型的映射不明确
在使用WebService开发时,同时使用了EF和linq,查询数据时,使用linq(查询订单)可以正常拉出数据,
但是使用EF(查询用户)却会报以下错误:
{"指定的架构无效。错误: \r\nCLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型与 EDM 类型“Orders”匹配。以前找到的是 CLR 类型“WebService1.Model.Orders”,新找到的则是 CLR 类型“WebService1.LinqModel.Orders”。\r\nCLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型与 EDM 类型“Users”匹配。以前找到的是 CLR 类型“WebService1.Model.Users”,新找到的则是 CLR 类型“WebService1.LinqModel.Users”。"}
DbContext的MetadataWorkSpace一旦生成会缓存起来。也就是说,在同一个应用程序域里面,一旦用dbcontext操作过数据库,它会自动读取类所在assembly里面的所有类,并尝试匹配数据库模型,然后将匹配结果保存起来(保存到上面的MetaOCSpace中)。当下次操作数据库时,返回数据对应类类所在其它assembly里面的类与当前已匹配数据库模型发生冲突时,便会报错。(这段话是网上抄的)
在ASP.NET MVC5高级编程(第5版)中第70页作者写到:
实体框架的另一种(默认的)策略是延迟加载策略。使用延迟建在策略,EF在LINQ查询中只加载主要对象(专辑)的数据,而不填充Genre和Artist属性。
var albums=db.Albums;
延迟加载根据需要来加载相关数据,也就是说,只有当Album的Genre或Artist需要属性时,EF才会公国向数据库发送一个个额外的查询来加载这些数据。延迟加载策略会强制框架未列表中每一个专辑向数据库发送一个额外的查询。
参考上面的解释和报错信息,还是不太清楚他们的内部运行原理(需要继续研究),但是已经知道如何解决了。
解决方案:不要生成相通的模型,可以修改linq模型名称。
修改后:
问题得到解决。
指定的架构无效。错误: CLR 类型到 EDM 类型的映射不明确的更多相关文章
- 异常跟踪之CLR 类型到 EDM 类型的映射不明确
异常信息: "指定的架构无效.错误: CLR 类型到 EDM 类型的映射不明确,因为多个 CLR 类型与 EDM 类型“Person”匹配. 以前找到的是 CLR 类型“A.Person”, ...
- Entity Framework 指定架构无效 错误:1052
IIS发布网站:如果不发布放到IIS没有问题,发布后IIS部署 打开网站却提示指定架构无效 1052 找到很多解决的问题 1添加wenconfig 2.更改entity名的 其实我认为最简单的就是先找 ...
- Linq to sql 之 ExecuteQuery 错误:指定的转换无效
问题:通过dbContext.ExecuteQuery 得到数据并赋值给一个集合. 代码: public IEnumerable<LeaveCodeSum> GetLeavTotal(st ...
- 数据库还原错误:指定的转换无效。(SqlManagerUI)
SSMS在一定程度上方便我们进行一些常见的操作.但有时候它处理得又不是那么不人性化.尤其是错误信息. 今天我在进行数据库还原的时候就碰到一个错误:指定的转换无效.(SqlManagerUI) Spec ...
- 重温CLR(三)类型基础
所有类型都从System.Object派生 “运行时”要求每个类型最终都要从System.Object类型派生.也就是说,一下两个类型的定义完全一致. //隐式派生自Object class Empl ...
- [CLR via C#]4. 类型基础及类型、对象、栈和堆运行时的相互联系
原文:[CLR via C#]4. 类型基础及类型.对象.栈和堆运行时的相互联系 CLR要求所有类型最终都要从System.Object派生.也就是所,下面的两个定义是完全相同的, //隐式派生自Sy ...
- 在access转sql server指定的转换无效
今天继续昨天没解决的问题,还是继续报错数据库中“指定的转换无效”,看着这个错误都有点头大了,啊啊啊啊,因为无法再代码中寻找到具体点,只好在晚上继续查询 最后终于看到一条帖子说在转换的时候可能出现数据冲 ...
- Entity FreamWork 无法创建“System.Object”类型的常量值。此上下文仅支持基元类型或枚举类型错误解决
Entity FreamWork 无法创建“System.Object”类型的常量值.此上下文仅支持基元类型或枚举类型错误解决: 最近在开发中把我原来抄的架构里面的主键由固定的Guid改成了可以泛型指 ...
- [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- win7 打印机共享
1.在工具->文件夹选项->查看,将"使用简单文件共享"前面的勾勾去掉2.在控制面板->用户帐号,将guest帐户启用3.运行"gpedit.msc&q ...
- fscanf使用
函数名: fscanf 简述:C语言中基本的文件操作 功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束.这与fgets有区别,fgets遇到空格不结束. 简单的说 ...
- 修改vim的主题风格
参考网站:https://github.com/yangyangwithgnu/use_vim_as_ide#0.1 molokai源码:https://github.com/tomasr/molok ...
- 模板函数(template function)出现编译链接错误(link error)之解析
总的结论: 将template function 或者 template class的完整定义直接放在.h文件中,然后加到要使用这些template function的.cpp文件中. 1. 现 ...
- label、input、table标签
<label>标签 <form> <label for="male">Male</label> <input type=&qu ...
- 【随笔】MQTT简介
我们知道,将用户使用的设备称为客户端,将提供给用户信息的端口称为服务器端.两个端口之间可以通过多种通信协议进行交互,比如HTTP(同步)或者基于消息传递的异步. HTTP是一种同步无状态的协议,不支持 ...
- 分布式缓存技术memcached学习(二)——memcached基础命令
上文<linux环境下编译memcahed>介绍了memcahed在linux环境下的安装以及登录,下面介绍memcahed的基本命令的使用. Add 功能:往内存增加一条新的缓存记录 语 ...
- 10月wish me luck
10/13 明天开始的三天 就要跟历史地理化学说拜拜了 以诚待之 好运 10/20 P三角形计数:一看就是叉积.因为去年迪子讲过.但是我已经忘记了.所以重新写了一遍.把所有的点有序化,将三角形面积转化 ...
- Leetcode N-Queens
The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...
- [BZOJ4029][HEOI2015] 定价
Description 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 元.5000 元和 9000 元并没有什么本质区别,但是在心理学上会让人感觉便宜很 ...