【发布时间】:2015-11-15 11:35:43
【问题描述】:
如何将左连接 linq 查询转换为 lambda 表达式
var query = from e in db.Employee
join ed in db.EmployeeDetails on e.EmpId equals ed.EmpId into EmpIdInfo
from EmployeeDetails in EmpIdInfo.DefaultIfEmpty()
select new
{
EmpId = e.EmpId
,FirstName = e.FirstName
,LastName = e.LastName
}
【问题讨论】:
-
Employee和EmployeeDetails有什么关系? Employee 类是否包含 EmployeeDetail 类型的属性?我问这个问题是因为在您的查询中您没有在投影 netiher EmpIdInfo 中使用
edvaraible。 -
关系是 1-1,它们都与 empId 相关
-
那么您想编写一个查询,只检索具有 EmployeeDetails 的员工,对吧?
-
不,我想从员工表中检索不在employeedetails中的记录,基本上是左连接
-
那么这该怎么办
(db.Employee.Where(e => e.EmployeeDetails.EmpId == null).Select new { EmpId = e.EmpId ,FirstName = e.FirstName ,LastName = e.LastName }).ToList();
标签: entity-framework linq