linq之多表连接

1、左连接:

var LeftJoin = from emp in ListOfEmployees 
join dept in ListOfDepartment 
on emp.DeptID equals dept.ID into JoinedEmpDept 
from dept in JoinedEmpDept.DefaultIfEmpty() 
select new  

EmployeeName = emp.Name, 
DepartmentName = dept != null ? dept.Name : null  
};

 

如果想实现右连接,就把两个表换一下位置。

 

2、右连接:

var RightJoin = from dept in ListOfDepartment 
join employee in ListOfEmployees 
on dept.ID equals employee.DeptID into joinDeptEmp 
from employee in joinDeptEmp.DefaultIfEmpty() 
select new  

EmployeeName = employee != null ? employee.Name : null,          //重点
DepartmentName = dept.Name 
};

 左链接或右链接,使用DefaultIfEmpty()语法,采用些语法前需要用到into语法

3、内连接:

var query = from t in entitiy.TB_GCGL_ADA_USER 
join p in entitiy.TB_GCGL_ZY_ZYK 
on t.ETPRS_CODE equals p.ETPRS_CODE

select new TB_USER_ZYK 

USER_ID = t.USER_ID, 
USER_NAME = t.USER_NAME, 
USER_PASSWORD = t.USER_PASSWORD,

};

posted @ 2018-04-03 08:47  哈根达斯  阅读(780)  评论(0编辑  收藏  举报