求个多表关联的lamda的写法

问题描述

有如下三张表,ID_A,ID_B,ID_C分别是ABC三张表的主键表AID_A123表BID_BID_AID_Ca1Ab1Bc2Cd2De3E表CID_CtextAhelloBboyCgoodDjobEsee想要实现的效果如下ID_Atexts1hello,boy2good,job3see这个用lamda怎么写,求助,用groupjoin写了半天就是获取不到texts

解决方案

解决方案二:
text直接取你肯定是取不到的,因为groupby后,text是一个数组
解决方案三:
staticvoidMain(string[]args){List<int>lstA=newList<int>(){1,2,3,4};List<CB>lstB=newList<CB>(){newCB(){ID_B="a",ID_A="1",ID_C="A"},newCB(){ID_B="b",ID_A="1",ID_C="B"},newCB(){ID_B="c",ID_A="2",ID_C="C"},newCB(){ID_B="d",ID_A="2",ID_C="D"},newCB(){ID_B="e",ID_A="3",ID_C="E"}};List<CC>lstC=newList<CC>(){newCC(){ID_C="A",Text="hello"},newCC(){ID_C="B",Text="boy"},newCC(){ID_C="C",Text="good"},newCC(){ID_C="D",Text="job"},newCC(){ID_C="E",Text="see"}};lstB.Join(lstC,x=>x.ID_C,x=>x.ID_C,(x,y)=>new{ID_A=x.ID_A,Texts=y.Text}).GroupBy(x=>x.ID_A).Select(x=>new{ID_A=x.First().ID_A,texts=string.Join(",",x.Select(y=>y.Texts))}).ToList().ForEach(x=>Console.WriteLine(x));Console.ReadLine();}classCB{publicstringID_B;publicstringID_A;publicstringID_C;}classCC{publicstringID_C;publicstringText;}

解决方案四:
staticvoidMain(string[]args){List<int>lstA=newList<int>(){1,2,3,4};List<CB>lstB=newList<CB>(){newCB(){ID_B="a",ID_A="1",ID_C="A"},newCB(){ID_B="b",ID_A="1",ID_C="B"},newCB(){ID_B="c",ID_A="2",ID_C="C"},newCB(){ID_B="d",ID_A="2",ID_C="D"},newCB(){ID_B="e",ID_A="3",ID_C="E"}};List<CC>lstC=newList<CC>(){newCC(){ID_C="A",Text="hello"},newCC(){ID_C="B",Text="boy"},newCC(){ID_C="C",Text="good"},newCC(){ID_C="D",Text="job"},newCC(){ID_C="E",Text="see"}};//ID_Atexts//1hello,boy//2good,job//3seevarquery=lstA.Where(obj=>{returnlstB.Where(obj2=>Convert.ToInt32(obj2.ID_A)==obj).Count()>0;}).Select(obj=>{varquery3=frombinlstBjoincinlstConb.ID_Cequalsc.ID_CwhereConvert.ToInt32(b.ID_A)==objselectc.Text;stringstr=string.Join(",",query3);returnnew{ID_A=obj,texts=str};});foreach(varoneinquery){}}‍classCB{publicstringID_B;publicstringID_A;publicstringID_C;}classCC{publicstringID_C;publicstringText;}‍
解决方案五:
classProgram{staticvoidMain(string[]args){List<ModelA>tableA=newList<ModelA>{newModelA{ID_A=1},newModelA{ID_A=2},newModelA{ID_A=3},};List<ModelB>tableB=newList<ModelB>{newModelB{ID_B="a",ID_A=1,ID_C="A"},newModelB{ID_B="b",ID_A=1,ID_C="B"},newModelB{ID_B="c",ID_A=2,ID_C="C"},newModelB{ID_B="d",ID_A=2,ID_C="D"},newModelB{ID_B="e",ID_A=3,ID_C="E"},};List<ModelC>tableC=newList<ModelC>{newModelC{ID_C="A",text="hello"},newModelC{ID_C="B",text="boy"},newModelC{ID_C="C",text="good"},newModelC{ID_C="D",text="job"},newModelC{ID_C="E",text="see"},};varresult=tableC.Join(tableB,c=>c.ID_C,b=>b.ID_C,(tA,tB)=>new{ID_C=tA.ID_C,text=tA.text,ID_A=tB.ID_A,}).GroupBy(g=>g.ID_A).Select(s=>new{ID_A=s.Key,texts=string.Join(",",s.Select(se=>se.text)),});//最后与表一jion。事实。我感觉有点多余}classModelA{publicintID_A{get;set;}}classModelB{publicstringID_B{get;set;}publicintID_A{get;set;}publicstringID_C{get;set;}}classModelC{publicstringID_C{get;set;}publicstringtext{get;set;}}}

时间: 2024-07-29 12:18:28

求个多表关联的lamda的写法的相关文章

数据-多表关联按照一个地区插入到一张新表中。在线跪求各位大神,急急急!!!

问题描述 多表关联按照一个地区插入到一张新表中.在线跪求各位大神,急急急!!! 多表关联,我现有多张表,想将数据提取出来,按照一个地区插入到一张新表中,但是这些多张表,有的比如有西安,但是有的有没有西安,所以会造成数据的丢失,有什么好的方法可以解决?在线跪求各位大神,急急急!!! 解决方案 刚开始的的第一张表是没有西安的,informix库 解决方案二: 按照你说的要求,我觉得应该有张表的地区应该最为全面,就是说有一条主线可以将所有表都联立起来,然后可以以这张表为主表进行左联即可.. 解决方案三

sqlserver 1 n-sqlserver 两个表关联1:n求随机取一条数据的sql语句实现!

问题描述 sqlserver 两个表关联1:n求随机取一条数据的sql语句实现! 现在要补齐tb1中演唱歌曲字段.条件是去tb2中查找相同艺人演唱过的歌曲,随机填充到tb1中的歌曲名字段 一个歌手不止演唱一首歌,所以tb2中是艺人演唱所有歌曲的集合.tb1中同一个歌手可能出现好几次 补齐时候需根据tb1中艺人名称去tb2也就是艺人歌曲汇总表中查找相同艺人演唱的歌曲名称. 需要在艺人名相同情况下随机取tb2中演唱歌曲名去一一补齐tb1中的字段 tb1 tb1 艺人 演唱歌曲名 a null b n

sql-SQL join 多表关联问题

问题描述 SQL join 多表关联问题 table:log_create_player player_id uid created_time 1 11 121221 2 22 121212table:log_login player_id action_time 1 22323 1 33434table:payment pay_user_id pay_amount exchage 22 33 0.333 想得到 player_id max(action_time) times doll 1 3

数据库-mysql中用bolb存储emoji表情,单张表查询可以,多表关联查询该字段则为空

问题描述 mysql中用bolb存储emoji表情,单张表查询可以,多表关联查询该字段则为空 现在碰到一个问题,关于emoji表情的,现在mysql中我用bolb存储emoji表情,单张表查询表情可以正常的查询出来,多表关联查询的时候,存emoji表情的字段查询出来为空,求大神指点,该字段我用的是bolb数据类型,数据库,表,都是utf8mb4字符集 解决方案 将查询出来的数组调试输出下,和原始的数据比对,估计是数据编码的错误.

sqlite3-Android sqlite 把用户名密码,与另外一个表关联起来的方法

问题描述 Android sqlite 把用户名密码,与另外一个表关联起来的方法 现在做了一个登陆注册的功能,这是数据库的一个表 又做了一个功能类似日记的纪录功能,如何将这两个表关联起来,实现每人在登陆之后都看到的是自己的日记纪录,而不是所有人日记纪录? 表的格式是表1 id username password 表2 id notename notecontent date 求大神解答! 解决方案 登录了以后把他输入的用户名记录在全局变量里.新建笔记的时候,根据这个变量设置userid字段 列出

sqlite3-Android sqlite 把用户名和其他表关联起来

问题描述 Android sqlite 把用户名和其他表关联起来 现在做了一个登陆注册的功能,这是数据库的一个表 又做了一个功能类似日记的纪录功能,如何将这两个表关联起来,实现每人在登陆之后都看到的是自己的日记纪录,而不是所有人日记纪录? 表的格式是表1 id username password 表2 id notename notecontent date username 定义一个全局变量 让他在注册后=注册时username 然后写日记或者看日记的时候将表2的username等于这个全局变

mysql两张表关联设置里面的内容

问题描述 mysql两张表关联设置里面的内容 已经第一张表goods 主键goods_id,价格price,另一张表product 有外键goods_id,价格price.现在要求如果product中的price=0,那么设置这个price的值等于goods表中的price,求这条sql怎么写,谢谢大家 解决方案 update product set product .price=goods.price where product.goods_id=goods.goods_id and prod

Hibernate对多表关联查询

由于公司项目的需要,我对Hibernate对多表关联查询研究了一下,现总结如下,供朋友参考. 一. Hibernate简介Hibernate是一个JDO工具.它的工作原理是通过文件(一般有两种:xml文件和properties文件)把值对象和数据库表之间建立起一个映射关系.这样,我们只需要通过操作这些值对象和Hibernate提供的一些基本类,就可以达到使用数据库的目的.例如,使用Hibernate的查询,可以直接返回包含某个值对象的列表(List),而不必向传统的JDBC访问方式一样把结果集的

asp.net 水晶报表-主从表关联问题

asp.net|水晶报表|问题 一.使用视图meeting将多表关联整合在一起 二.通过Sql语句筛选数据 三.建立和主从表的关联 四.注意在CrystalReport1表中插入子报表的时候,一定要将主从表的关联字段设置好,否则出乱子 主体代码如下: /// <summary>  /// Bind CrystalReport  /// </summary>  /// <param name="strS">sql</param>  priv