解决LINQ中的多对多的问题

C# LINQ 多表查询 在C#中使用linq实现多表查询,首先需要在c#中连接你的数据库 首先我们先创建一个数据库和两个数据表 然后在表中插入数据设置完毕后到c#中 把数据库创建完毕后在main函数中连接字符串也就是连接自己的sqlsever string str = "server=DESKTOP-IOK5BR8;uid=sa;pwd=123456;database=db_SouthWind"; 然后实例化一个数据集对象 !要引用命名空间using System.Data; DataSet ds =... 阅读详情

首先,一般我们要解决表中数据多对多的问题,一般是这样的做法:


使用外键相关联,然后如果想通过左表访问到所有与之关联的右表数据,只需要查出中间表与左表对应的Id的数据即可。

如果是直接写SQL就是一个in查询运算符即可,但是LINQ中是没有现成的方法的,我们需要手动来实现一个。

///获取所有的Id集合
            List<int> proIdList = Context.BLLSession.MerPdtRelation.Where(c => c.mId == Context.MatNow.Id).Select(c => c.pId).ToList();

            ///然后获取Id集合中的有的元素的集合
            List<wProdcuts> datCnt = Context.BLLSession.wProdcuts.Where(c => proIdList.Contains(c.Id)).ToList();

上面代码的关键也就是第一个查询语句的Select操作和第二个Contains操作。

如果我们把它写成相应的linq语句,则是:

  IEnumerable<int> proLst = from item in Context.BLLSession.MerPdtRelation where item.mId == Context.MatNow.Id select item.pId;

  IEnumerable<wProdcuts> outResult= from item in Context.BLLSession.wProdcuts where proLst.Contains(item.Id) select item;
一般SQO标准查询运算符是LINQ语句是可以相互转换的,大家在使用的时候就因人而异了。
C#中的LINQ toSQL LINQ to SQL 基于ADO.NET 将数据表和行映射成类对象。 LINQ to SQL从.net 自定义属性或xml文档中获取映射信息。这些信息用于自动将对象持久保存至关系型数据库中。 数据表可以map成一个类,数据表中的列将被map类中的属性,表与表之间的关系将以额外的属性表示。 LINQ to sql 能够自动跟踪对象的修改。并通过动态生成的SQL语句进行更新数据库。 数据库如下:... 阅读详情

相关推荐

9 HAL库驱动框架简述(STM32HAL库)

HAL库外设的使用步骤总结如下:1、定义并填充xxx外设句柄结构体。2、如果遵循HAL库规范,通过HAL_xxx_MspInit()函数,实现外设底层资源的初始化,包括但不限于GPIO、时钟、DMA、中断等资源的初始化。3、调用HAL库的对应外设初始化函数,形如:HAL_xxx_Init()。4、初始化完成,开始使用外设。5、使用方法具体查看对应外设的HAL库驱动包中的说明:补充:HAL库使用主线外设初始化外设使用。

qq_25218501的博客 1983

Linq多表连接查询

在 LINQ 中,join 子句可以实现 3 种类型的联接分别是内部联接、分组联接和左外部联接。 1、内部连接(相对于sql:join | inner join) 格式:join element in dataSource on exp1 equals exp2 int[] intAry1 = {5, 15, 20, 30, 33, 40};//创建整数数组 intAry1 作为数据源 i...

全网同名,欢迎关注。 7693

从零搭建风电场:手把手教你用WAsP+WindPRO完成风资源评估全流程

本文详细介绍了从零开始搭建风电场的全流程,重点讲解如何使用WAsP和WindPRO进行风资源评估和风场布局优化。内容包括软件配置、数据采集规范、风图谱建模实战、机组选型策略以及常见问题解决方案,帮助工程师掌握风电开发的核心技术,提升项目成功率。

year5的博客 372

使用linq2sql 的DetailView 如何保存多对多关系

比如有用户和角色这2个对象是多对多关系,而linq2sql是不支持多对多的,这个时候就要自己手工写代码了. 代码 publicpartialclassfrmUserEdit:System.Web.UI.Page { protectedvoidPage_Load(objectsender,EventArgse) { ...

dengshumi7891的博客 84

UniTouch:多模态触觉对齐技术如何重塑零样本跨模态应用

UniTouch模型通过创新的多模态触觉对齐技术,成功将触觉数据映射到通用的视觉-语言嵌入空间,解决了触觉模态的“孤岛困境”。该技术利用对比学习和传感器特定标记,实现了高质量的零样本学习能力,使模型无需额外训练即可完成触觉分类、描述等任务,并能驱动跨模态生成,为机器人、VR和智能制造等领域提供了强大的触觉理解新范式。

weixin_29044713的博客 409

开关电源和线性电源Multisim电路仿真实验汇总——硬件工程师笔记

本文系统介绍了稳压电源的基础知识与应用实验。首先阐述了稳压电源的定义与类型,包括线性稳压电源(如LM7805/7905)和开关稳压电源(降压/升压/升降压式)的工作原理、参数特点及优劣势。随后详细讲解了各类稳压电源的实验设计,如线性稳压电源的电路实现、开关稳压电源的PWM控制方法等。最后汇总了硬件工程师相关的笔试面试资源,涵盖器件知识、电路仿真、企业真题等内容。全文结合理论分析与Multisim仿真,为电子工程学习者提供了稳压电源的实用技术参考。

XU157303764的博客 1641

C#中的LINQ

LINQ(Language Integrated Query),即语言集成查询是一组用于C#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

qq_71012549的博客 4917

OpenClaw进阶实战(二十一):工作流6:跨平台舆情监控与自动响应

摘要: 本文介绍基于OpenClaw构建自动化舆情监控系统,实现多平台数据采集、AI情感分析与智能预警。系统架构包含数据采集(微博/小红书/抖音)、消息队列、情感分析(SnowNLP/大模型API)、分级预警和自动响应模块。通过技能化开发(如微博API采集、小红书模拟登录)实现7×24小时监控,结合情感强度与传播速度分级处理负面舆情,形成"采集-分析-预警-处置"闭环,适用于企业私有化部署。

PeterPan的博客 301

linq4j 项目常见问题解决方案

linq4j 项目常见问题解决方案 项目基础介绍和主要编程语言 linq4j 是一个将 LINQ(Language-Integrated Query)移植到 Java 的开源项目。LINQ 是 .NET 平台上的一种查询语言,允许开发者以一种统一的方式查询数据源。linq4j 项目的目标是为 Java 开发者提供类似的功能,使得他们可以在 Java 中使用 LINQ 风格的查询。 该项目的主要编程...

gitblog_00536的博客 888

彻底解决Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource

renkai721的专栏 24万+

人体红外传感器HC-SR501

本文记录的是如何用stm32使用HC-SR501。实验平台:野火指南者stm32f103vet6。实验现象:一旦有人体经过,LED会亮红色。HC-SR501 传感器工作原理人体都有恒定的体温,一般在 37 度,所以会发出特定波长 10UM 左右的红外线,被动式红外探头就是靠探测人体发射的 10um 左右的红外,进行工作的。人体发射的 10um 左右。

weixin_43772611的博客 1万+

go-linq 项目常见问题解决方案

go-linq 项目常见问题解决方案 go-linq .NET LINQ capabilities in Go 项目地址: https://gitcode.com/gh_mirrors/go/go-linq ...

gitblog_00002的博客 871

秃鹰搜索优化算法(BES)详解:从自然捕食到全局优化

秃鹰搜索优化算法(Bald Eagle Search Optimization Algorithm,BES)是由马来西亚学者Alsattar等人于2020年提出的一种新型元启发式优化算法。该算法灵感来源于秃鹰在自然界中高超的捕食行为,特别是其独特的狩猎策略和卓越的视觉搜索能力,模拟了秃鹰捕食鲑鱼等猎物的完整过程。

qq_42212808的博客 1353

【LINQ】深入浅出 LINQ:C# 中的强大查询工具

LINQ,全称为,即语言集成查询,是 C#(和其他 .NET 语言)中的一种查询语言。它提供了一种统一的方式来查询不同类型的数据来源,无论是集合、数据库、XML 文档,甚至是远程数据服务。LINQ 使得查询和数据处理看起来更加直观、更符合自然语言习惯。

qq_25699299的博客 1578

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Linq-in-Rust 项目常见问题解决方案

Linq-in-Rust 项目常见问题解决方案 项目基础介绍 Linq-in-Rust 是一个开源项目,旨在将 .NET 中 LINQ (Language Integrated Query) 的概念引入到 Rust 编程语言中。LINQ 是一种用于操作数据集合的查询语法,它允许开发者以声明性的方式编写数据操作逻辑。本项目使用 Rust 语言实现了一套类似 LINQ 的功能,通过宏和迭代器来支持数据...

gitblog_00434的博客 865

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LINQ中实现对象Many-To-Many(多对多)的关系映射

前段时间,大概用了一下LINQ to SQL, 发觉O/Rdesigner似乎没有Many-To-Many(多对多)关系的支持,只有自己写代码实现.:( 提供一下俺的解决办法: 例如User和UserGroup的关系,假设保存在UserInGroups表中,这里记录了User和Group的对应关系,那么,需要手动在User/Group类中添加对应的partial属性: public partial...

weixin_30819085的博客 231

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LINQ中的select

它通常用于从源集合中选择数据,并且可以用于投影(projection),即将源数据转换成新的形式或新的数据结构。关键字是 LINQ 查询中非常强大的一个部分,它提供了极大的灵活性来塑造查询的结果。在实际使用中,你可以根据需要选择最合适的方式来使用它。来创建新的对象实例,这在创建 DTO(Data Transfer Objects)或者需要将数据转换为不同类型时非常有用。:如果你想要返回源集合中的每个对象,可以直接使用对象的类型名作为选择的结果。:如果你只对对象的某些属性感兴趣,可以选择这些属性。

愿你历尽千帆,归来仍是少年。 1989

[转]LINQ体验(9)——LINQ语句之Insert/Update/Delete操作

我们继续讲解LINQ语句,这篇我们来讨论Insert/Update/Delete操作。这个在我们的程序中最为常用了。我们直接看例子。Insert/Update/Delete操作Insert1.简单形式说明:new一个对象,使用InsertOnSubmit方法将其加入到对应的集合中,使用SubmitChanges()提交到数据库。NorthwindDataContext db =

菩提树下的杨过 1129

常见LINQ错误及解决方案

常见LINQ错误及解决方案 项目基础介绍 该项目名为“common-linq-mistakes”,主要用于帮助开发者识别和解决在使用LINQ(Language Integrated Query)时常见的错误和误区。LINQ是.NET框架中用于查询数据源的强大工具,广泛应用于C#编程中。项目通过提供示例代码和错误案例,帮助开发者更好地理解和使用LINQ。 主要的编程语言 该项目主要使用C#编程语言,...

gitblog_01049的博客 506

C#中的LINQ查询

开发工具与关键技术:LINQ查询 作者:邓崇富 撰写时间:2019 年6 月 24 日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LINQ概述: LINQ(Language Integrated Query,语言集成查询)在C#编程语言中集成了查询语法,可以...

weixin_44548405的博客 1001

LINQ学习中关于null相关的问题及解决方案

null词语释义:编程中的NULL表示不可用的数据,没有意义.    1. 无效的;无价值的    2. 【数】零的 Null在数据库中表示 不知道(Unknown) 的数据,主要有3种意思: 1)知道数据存在,但不知道具体值 2)不知道数据是否存在 3)数据不存...

dhka8040652的博客 529
上一篇: ASP.NET MVC实现多文件上传
下一篇: ionic加载百度地图失败的解决方案
遛狗的代码
博客等级 码龄11年 10粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值