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;

猜你喜欢

转载自www.cnblogs.com/xuhp/p/10502848.html