EntityFramework经典的left join语法

/*
 * 常常看到有人问linq语法怎样写left join的查询语句,但网上找到的都是简单的两表连接。參考意义有限。
 * 今天最终项目里要用到复杂的多表连接,同一时候含有多个左连接,
 * 恰好又遇到业务中有复杂连接条件,因此整理例如以下。供大家參考:
 */
list = from t1 in Content.table1
       join t2 in Content.table2
         on t1.colum1 equals t2.colum2
       into r1
       from t2 in r1.DefaultIfEmpty()
       join t3 in Content.table3
         on new { pid = t2.colum2,      sid = t2.colum1,     t2.colum3 } //字段类型或值不一致时,
     equals new { pid = t3.colum2 ??

0, sid = t3.colum3 + 1, t3.colum4 } //能够这样统一起来 into r2 from t3 in r2.DefaultIfEmpty() join t4 in Content.table4 on t2.colum5 equals t4.colum1 where t2.id == paramId && string.IsNullOrEmpty(t1.colum2) select new your-result-class-name { //这里写点啥,地球人都知道。

。 }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值