博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linq GroupJoin(二)
阅读量:4041 次
发布时间:2019-05-24

本文共 2601 字,大约阅读时间需要 8 分钟。

左连接日常使用比较多,假如有两张表tbRoom和tbUserInfo。

得到房间住户信息:

C#var list = from r in tbRooms                          join ui in tbUserInfos                          on r.UserName equals ui.UserName into userrooms                          from ur in userrooms.DefaultIfEmpty()                          select new                           {
FirstName = (ur.FirstName ==null ? "N/A": ur.FirstName), LastName = (ur.LastName == null ? "N/A":ur.LastName), RoomName = r.Name }; VB:Dim list = from r in tbRooms Group join ui in tbUserInfos on r.UserName equals ui.UserName into userrooms from ur in userrooms.DefaultIfEmpty() select FirstName = if(ur.FirstName = nothing, "N/A", ur.FirstName), LastName = if(ur.LastName = nothing, "N/A",ur.LastName), RoomName = r.Name

另一个多表左联接的例子:

C#

**SQL:**SELECT id, name, jname, cname           FROM userinfo u           LEFT JOIN job j on u.job = j.jid           LEFT JOIN city c on u.city = c.cid         **C# Linq:**var list = (      from u in dc.userinfos          join j in dc.jobs on u.job equals j.jid into j_join      from x in j_join.DefaultIfEmpty()          join c in dc.cities on u.city equals c.cid into c_join      from v in c_join.DefaultIfEmpty()      select new      {
id = u.id, name = u.name, jname = x.jname, cname = v.cname, /*u1=u,x1=x,v1=v*/ //不要用对象的方式 因为对象可能为null那么对象.属性就会抛异常 } ).ToList(); for (var i = 0; i < list.Count(); i++) {
Console.WriteLine(list[i].name + '\t' + list[i].jname + '\t' + list[i].cname); //字段为null不报异常 //Console.WriteLine(list[i].u1.name+'\t'+list[i].x1.jname+'\t'+list[i].v1.cname+"\r\n"); //对象x1 v1 有可能为null 抛异常 } Console.ReadLine();

VB.NET

**SQL:**SELECT id, name, jname, cname           FROM userinfo u           LEFT JOIN job j on u.job = j.jid           LEFT JOIN city c on u.city = c.cid         **VB Linq:**Dim list = (      from u in dc.userinfos          join j in dc.jobs on u.job equals j.jid Into  j_join = Group     from x in j_join.DefaultIfEmpty()          join c in dc.cities on u.city equals c.cid Into c_join  = Group    from v in c_join.DefaultIfEmpty()      select new  with    {          .id = u.id,          .name = u.name,          .jname = x.jname,          .cname = v.cname      }      ).ToList();

转载地址:http://bsmdi.baihongyu.com/

你可能感兴趣的文章
苹果Swift编程语言入门教程【中文版】
查看>>
捕鱼忍者(ninja fishing)之游戏指南+游戏攻略+游戏体验
查看>>
iphone开发基础之objective-c学习
查看>>
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>
剑指offer算法题分析与整理(一)
查看>>
剑指offer算法题分析与整理(三)
查看>>
Ubuntu 13.10使用fcitx输入法
查看>>
pidgin-lwqq 安装
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>
retext出现Could not parse file contents, check if you have the necessary module installed解决方案
查看>>
Matlab与CUDA C的混合编程配置出现的问题及解决方案
查看>>
PaperDownloader——文献命名6起来
查看>>
如何将PaperDownloader下载的文献存放到任意位置
查看>>
C/C++中关于动态生成一维数组和二维数组的学习
查看>>