指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。

LINQ:统一查询语法的强大工具 LINQ(Language Integrated Query)是.NET框架中的一项创新功能,它将查询功能直接集成到C#和VB.NET等语言中,提供统一的语法来操作各种数据源。LINQ的核心优势包括统一的查询语法、强类型支持、智能感知、查询表达式与Lambda表达式的灵活性以及延迟执行特性。它适用于数据筛选、排序、转换、分组、聚合等场景,并支持多种数据源如对象、XML和数据库。LINQ的核心组件包括System.Linq命名空间和不同的LINQ提供程序(如LINQ to Objects、LINQ to XM 阅读详情
var itemsNextIDs = itemInChannelRepository.Filter(i => i.ProductID > id ).Select(i => i.ProductID).ToList();
 
var productNext = from p in productRepository.Filter(p => p.ID > id )
                                  join i in itemsNextIDs
                                  on p.ID equals i
                                  orderby p.ID
                                  select p;
Model.Product product2 = productPre.FirstOrDefault();


上面的写法可以完成查询

============================================================================================================================ok

我本来是这样写的:(会报错:“......  指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。”)

var productNext = from p in productRepository.Filter(p => p.ID > id )
                                  join i in itemInChannelRepository.Filter(i => i.ProductID > id )
                                  on p.ID equals i.ProductID
                                  orderby p.ID
                                  select p;
Model.Product product2 = productPre.FirstOrDefault()

 上面的查询需要访问两个上下文。解决方法是分两次查询。

============================================================================================================================error

var itemsNext = itemInChannelRepository.Filter(i => i.ProductID > id );
 
var productNext = from p in productRepository.Filter(p => p.ID > id )
                                  join i in itemsNext 
                                  on p.ID equals i.ProductID
                                  orderby p.ID
                                  select p;
Model.Product product2 = productPre.FirstOrDefault();

 像上面这样写又会出问题:(会报错:“......  此上下文仅支持基元类型(“例如 Int32、String 和 Guid”)。”)

报错的原因是在涉及到内存中的对象与EF里的对象混合查询时,内存中的对象要是基元类型。


============================================================================================================================error

var itemsNextIDs = itemInChannelRepository.Filter(i => i.ProductID > id ).Select(i => i.ProductID);
 
var productNext = from p in productRepository.Filter(p => p.ID > id )
                                  join i in itemsNextIDs
                                  on p.ID equals i
                                  orderby p.ID
                                  select p;
Model.Product product2 = productPre.FirstOrDefault();
 像上面这样写又会出问题:(会报错:“......  指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。”)

第一次查询实际上会因为EF的延时加载,不会立即将数据查询到内存中。

解决方法是对第一次查询使用ToList()

============================================================================================================================error

所以最终结果是:

var itemsNextIDs = itemInChannelRepository.Filter(i => i.ProductID > id ).Select(i => i.ProductID).ToList();
 
var productNext = from p in productRepository.Filter(p => p.ID > id )
                                  join i in itemsNextIDs
                                  on p.ID equals i
                                  orderby p.ID
                                  select p;
Model.Product product2 = productPre.FirstOrDefault();

============================================================================================================================ok


参考文章:http://blog.youkuaiyun.com/zzuqqiu/article/details/7185107

                    http://bbs.youkuaiyun.com/topics/390448261?page=1#post-394395668

C#中的LINQ查询表达式深度解读 本文提供了丰富的LINQ查询表达式代码示例,涵盖了基础查询、查询子句、高级查询操作等内容,并对每个示例进行了详细注释,阐述了其工作原理和应用场景。通过这些示例,您可以逐步理解和掌握如何在实际项目中使用LINQ查询表达式来处理各种数据源,提升代码的简洁性和可读性。通过本篇深入剖析,您应已全面理解C#中的LINQ查询表达式及其工作原理,掌握了如何使用LINQ查询表达式对不同数据源进行查询、过滤、排序、分组等操作。:LINQ查询默认采用延迟执行(Lazy Evaluation),只有在迭代结果时才真正执行查询。 阅读详情

相关推荐

OMI数据获取与可视化:从下载到大气污染分析

本文详细介绍了如何获取与处理OMI卫星数据,以进行大气污染分析。内容涵盖从NASA GES DISC官方源下载对流层NO2数据、使用MATLAB或Python进行月均数据处理与网格化,到利用m_map或cartopy工具进行专业可视化的完整流程。重点解析了数据下载技巧、NetCDF格式处理、地图投影与填色方法,并探讨了时间序列分析与动态可视化等深度应用,为环境研究者提供了一套从数据到洞察的实用指南。

weixin_29210759的博客 269

C# Linq EF 多数据库查询报错 指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。

在使用Linq 读EF进行两个数据库查询时出现如下错误 指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。 解决方法 在对应查询加上 .AsEnumerable() 即可 具体如下图 //两个EF实例 EF1 db1 = new EF1(); EF2 db2 = new EF2(); //报错 var query = (from A in db1.Table jo...

MH8888的博客 1424

利用LTspice设计Pt100测温电路

是一种广泛使用的温度传感器,它属于(RTD, Resistance Temperature Detector)的类型,通常用于温度测量。在0°C时,的电阻值为100欧姆,且它的电阻值会随着温度的升高而升高。PT100热电阻温度阻值对应表)因此可以根据这一特性来检测出环境温度。

2301_77033628的博客 2417

指定的 LINQ 表达式包孕对与不同上下文关联的查询的引用

var Area = this.AreaService.GetAll();           var list = items.ToList().GroupJoin(Area, u => u.Area_Id, g => g.Id, (u, Grp) => new { u = u, Grp = Grp }).SelectMany(               temp0=>temp0.Grp.

Jacky的专栏 1320

基于 YOLO + SAM 的自动图像标注实战

摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。

qq_64366203的博客 1147

基于Mask-RCNN网络的书架图书书脊分割和检测(含代码)

图书馆的书架上的图书书脊分割/检测对于图书书名等信息的识别具有重要意义,因此,该博客基于Mask-RCNN网络实现了图书书脊的分割和检测,有利于进一步利用ocr文字识别技术实现图书书名等信息的入库。如下图所示,为书架原始数据和分割/检测后的结果。(本文已训练模型,无需训练)

qq_44619530的博客 2025

指定的 LINQ 表达式包含对与不同上下文关联的查询的引用

var modules= (from m in account.RolesPermission where m.RoleID == ut select m.ModuleID).ToList(); var acticles = from a in ac.News where

lanse_my的专栏 4276

YOLOv8改进,MobileNetV3轻量化架构改进特征提取网络,助力涨点

MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法,通过新颖的架构改进进一步提升了性能。本文开始探讨了自动化搜索算法与网络设计如何协同工作,以利用互补方法来提升整体技术水平。通过这一过程,创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用场景。这些模型随后被适配并应用于目标检测和语义分割任务。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3835

【LINQ】指定的 LINQ 表达式包含对与不同上下文关联的查询的引用

通过把两个实体放到同一个上下文 关键字ObjContext(不能跨库使用) 使用前 OrderParentService orderParentService = new OrderParentService(); OrderItemService orderItemService = new OrderItemService(); var platform = Platform...

CountryShi的博客 751

两万字硬核指南!Python爬虫requests库从入门到精通:新手也能搞定所有爬取场景(附实战案例+避坑大全)

请求头是客户端发送给服务器的额外信息,比如User-Agent(浏览器类型)、Referer(来源页面)、Cookie(登录凭证)、(编码方式)等。Cookie是服务器存储在客户端的小型文本文件,包含用户的登录凭证、偏好设置等信息。浏览器会在每次请求时自动携带Cookie,服务器通过Cookie识别用户身份。代理IP是一个中间服务器,你的请求先发送到代理IP,再由代理IP发送到目标网站,目标网站只能看到代理IP的地址,看不到你的真实IP。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1496

二十一、SAP-库存管理

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1810

指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。 int转换枚举不成功...

1.指定的 LINQ 表达式包含对与不同上下文关联的查询的引用。 谁能解决? 2.int转换枚举不成功,先把linq to sql 转换成list。即.tolist().select new 类名{}即可。 转载于:https://www.cnblogs.com/bfy-19/archive/2012/08/10/2631594.html...

weixin_30711917的博客 164

[Python图像处理] 十.形态学之图像顶帽运算和黑帽运算

数学形态学(Mathematical morphology)是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:腐蚀和膨胀、开运算和闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换等。本篇文章主要讲解Python调用OpenCV实现图像形态学转化,包括图像顶帽运算和图像黑帽运算,基础性知识希望对您有所帮助。

杨秀璋的专栏 1万+

Linq从两个edmx(两个数据库)中选取数据进行查找出现错误解决 (指定的 LINQ 表达式包含对与不同上下文关联的查询)

1.http://www.cnblogs.com/Joetao/articles/2106426.html class Program { static void Main(string[] args) { using(UserDBEntities context=new UserDBEntities() )

道法自然 5456

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

谈谈C#使用Linq进行查询操作

前言 距离上一次更新,已经过去了一周,说起来实在是有些惭愧。一方面,近日的工作的重心在于前端api这块,没有时间精力再去补充C#的相关知识,另一方面,感觉学习的劲头确实不如从前了,近日提笔,也算是一种反思惊醒。今日整理的Linq知识,也是我一直想整理的,尤其在遇到EFcore进行联合查询的时候就遇到了linq,于是便有了下文。 本文整理转载于博客园:https://www.cnblogs.com/dotnet261010/p/8278793.html。 知乎:https://zhuanlan.zhih

覃鸿宇的博客 2404

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LINQ 和 Lambda 表达式的区别及示例

LINQ 和 Lambda 表达式的区别及示例

u010117029的博客 1109

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

从Lambda表达式到Linq查询

Lambda表达式 lamda表达式是一种匿名函数(没有函数名),使用方式 输入参数=>表达式或语句块 仅当 lambda 只有一个输入参数时,括号才是可选的;否则括号是必需的。 如:(x, y) => x == y 显示指定类型: (int x, string s) => s.Length > x 异步lamda: button1.Click += async

u013781568的专栏 1082

linq表达式 多表关联查询,左连接查询

多表关联查询              from x in _wholesalerReplenishmentDetailRepository.GetAll() join n in _wholesalerReplenishmentRepository.GetAll() on x.WholesalerReplenishmentId equa...

baimanmu3398的博客 1688

C#的LINQ查询

使用join子句将resultList中的元素赋值给变量r,并指定连接条件i.Id equals r.Id,表示当itemList中的元素的Id与resultList中的元素的Id相等时进行连接。在这个示例中,连接查询的结果将包含具有相同Id的Item和Result对象。通过使用LINQ查询语法,我们将这两个列表根据它们的Id字段进行连接,并选择itemList中的元素作为查询结果。在上述示例中,我们使用LINQ查询来将两个列表根据ID值进行连接和选择。子句选择需要的字段,并创建一个匿名类型对象。

ultramand的博客,重生之我在cad上二次开发猛猛敲C#代码~ 3310

LINQ的基本使用

一、什么是LINQ 长期以来,开发社区形成以下的格局: 1、面向对象与数据访问两个领域长期分裂,各自为政。 2、编程语言中的数据类型与数据库中的数据类型形成两套不同的体系,例如:   C#中字符串用string数据类型表示。   SQL中字符串用NVarchar/Varchar/Char数据类型表示。 3、SQL编码体验落后   没有智能感知效果。   没有严格意义上的强类型和类型检查。 4、SQL和XML都有各自的查询语言,而对象没有自己的查询语言。 上面描述的问题,都可以使用LINQ

进阶的小白 1806

EF关联查询linq--lamda

复习:关系数据库的意义就是多表关联 一对一、一对多、多对多的关系 一、Linq内连接 内连接与sql中的inner join 一样,即找出两个序列表的交集 语法:from 别名1in dbcontext.表1 join 别名2 in db.context .表2on 别名1.sid equals 别名2.sid where 设置条件 select new { ID = ...

dawfwafaew的博客 1072

LINQ查询

创建一个int类型的数组和一个查询,要求取得大于的元素,并在投影中使用输出操作,最后对查询结果进行遍历输出,创建查询时,在投影操作中增加了输出代码且未对数据进行任何修改,按照对代码的直观了解,执行创建的查询的代码完毕,temp中应该保存一个int类型的集合并且将投影操作中的输出代码输出到控制台,然后使用foreach遍历temp集合,输出控制台。TakeWhile()方法和SkipWhile()方法运算都是从结合的开头开始操作,碰到第一个不满足条件的数据后运算终止,并非是对整个集合筛选。

芜湖博客 1173

C#中LINQ查询的使用技巧

在C#编程中,LINQ(Language Integrated Query,语言集成查询)是一种强大的数据查询技术,它允许开发者以声明式的方式对数据源进行查询,无论是内存中的数据集合,还是外部数据源如数据库。这些提供程序为我们提供了统一的查询语法,使得我们可以以相同的方式处理不同类型的数据源。在本文中,我们探讨了LINQ查询的一些使用技巧和优化方法,希望这些内容能够帮助读者更好地理解和应用LINQ技术。此外,对于涉及到多次遍历数据源的情况,可以考虑先将数据源转换为列表或数组,以减少对原始数据源的访问次数。

uthRaman的博客 1447

四、C#高级特性(LINQ查询表达式)

C# 的 LINQ (Language Integrated Query) 是一种强大的查询语言,它允许你使用类似 SQL 的语法来查询各种数据源,包括数组、集合、数据库等。LINQ 查询表达式是 LINQ 的一个重要组成部分,它提供了一种简洁且易于阅读的语法来执行复杂的查询操作。LINQ 是 C# 中非常强大且灵活的特性,它简化了集合数据的查询和处理。正确使用 LINQ 可以显著提高代码的可读性和可维护性,同时还能提高应用程序的性能和响应能力。

ww1457950571的博客 797
上一篇: javascript获取url上的某个参数
下一篇: 找不到 EntityType “ ” 的映射和元数据信息。
code旅行者
博客等级 码龄15年 22粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值