46、C#:Linq的select连表操作

1.自连接,直接join即可

2.左连接,除了join之外,还需要加上:DefaultIfEmpty(),这个是用来给定这一行没有匹配上的默认值,引用类型为null,值类型为0

3.右连接,哪个表(如表a)要右连接(显示全部行值),直接把这个表(表a)放到最上面的from就可以了,其实就是换一个表的左连接

4.连接后使用了from  cc in aacc.DefaultIfEmpty()后,join之后的那个行号就不能再使用了,否则报没有定义的错误;右表只能使用cc来引用表的字段;且不能引用join之前的那个列表的字段

from  aa  in  list1

join  cc  in  list2  on aa.name  equals  cc.name  into  aacc   --一旦join之后,这一行就没有作用了,只能使用下面一行的行标

from  cc1  in  aacc.DefaultIfEmpty()

select new  book{

name = cc.name    //错误,cc这个行标已经不能再使用了

name = cc1.name  //正确

bookid = cc1.id  //错误,list2中没有id字段

bookid  =  aa.id  //正确

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值