Linq之路--左关联

C# LINQ 左关联详解
 1 var list = (from left in paramlist
 2             join right in paramissuelist  
 3             on new{ EQUIPMENT_CODE=left.EQUIPMENT_CODE
 4 ,STEP_CODE= left.STEP_CODE} 
 5             equals new { EQUIPMENT_CODE = right.EQUIPMENT_CODE
 6 ,STEP_CODE = right.STEP_CODE}
 7             into JoinedEmpDept from right in JoinedEmpDept.DefaultIfEmpty()
 8         select new
 9                  {
10                      SETTING_VALUE = left.SETTING_VALUE,
11                      ONLINE_ADDRESS = right != null ? right.ONLINE_ADDRESS : null,
12                      EQUIPMENT_CODE =left.EQUIPMENT_CODE,
13                      STEP_CODE= left.STEP_CODE,
14                      STEP_NAME=left.STEP_NAME,
15                      PARAM_NAME=left.PARAM_NAME
16                   }).ToList();
多条件左关联
 1 var list = (from left in paramlist
 2             join right in paramissuelist  
 3             on left.EQUIPMENT_CODE equals new right.EQUIPMENT_CODE
 4             into JoinedEmpDept from right in JoinedEmpDept.DefaultIfEmpty()
 5         select new
 6                  {
 7                      SETTING_VALUE = left.SETTING_VALUE,
 8                      ONLINE_ADDRESS = right != null ? right.ONLINE_ADDRESS : null,
 9                      EQUIPMENT_CODE =left.EQUIPMENT_CODE,
10                      STEP_CODE= left.STEP_CODE,
11                      STEP_NAME=left.STEP_NAME,
12                      PARAM_NAME=left.PARAM_NAME
13                   }).ToList();
单条件左关联

注意事项

1、一定要 into JoinedEmpDept from right in JoinedEmpDept.DefaultIfEmpty();

2、select左关联的值,一定要处理为空情况  ONLINE_ADDRESS = right != null ? right.ONLINE_ADDRESS : null;

 

转载于:https://www.cnblogs.com/xuhp/p/10502848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值