欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

linq之多表连接

程序员文章站 2022-04-19 17:33:49
1、左连接: var LeftJoin = from emp in ListOfEmployees join dept in ListOfDepartment on emp.DeptID equals dept.ID into JoinedEmpDept from dept in JoinedEmp ......

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,

};