var query =来自DataContext中的e.Employees在e.DeptId上的DataContext.Dept中加入d等于d.Id在e.Id上的DataContext.OtherInfo中加入o等于o.EmployeeId其中e.EmployeeId == 4选择新的Employee_Dept // DTO {EmployeeName = e.Name,DeptName = d.Name EmployeeId = e.ID DeptId = d.Id ContactNo = o.ContactNo}
我想用可能写的Lambda表达式来编写它 -
var query = DataContext.Employees.Join(Dept,e=>e.DeptId,d=>d.Id,(e,d)).Where(e=>e.EmployeeId=4)
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我完成这个查询.谢谢你的帮助.
我同意Craig Stuntz对Join的错误使用,但您可以使用扩展方法以下列方式表达相同的LINQ查询:
return DataContext.Employees
.Join(DataContext.Dept, e => e.DeptId, d => d.Id, (e,d) => new { Employee = e, Department = d })
.Join(DataContext.OtherInfo, s => s.Employee.Id, o => o.EmployeeId, (s, o) => new { Employee => s.Employee, Department = s.Department, OtherInfo = o })
.Where(e => e.Employee.Id == 4)
.Select(e => select new Employee_Dept//DTO
{
EmployeeName=e.Employee.Name,
DeptName=e.Department.Name
EmployeeId=e.Employee.ID
DeptId=e.Department.Id
ContactNo=e.OtherInfo.ContactNo
}
Run Code Online (Sandbox Code Playgroud)