LINQ to SQL左外连接

时间:2011-04-07 14:50:13

标签: linq-to-sql

我有一个名为payroll的表,它有一个名为payrollId的字段。我还有一个名为EmpMasterPayroll的表,它有一个名为payrollId的字段。我想从工资单中收集EmpMasterPayroll中没有的所有记录。

在纯sql术语中,这可以这样做:

在e.payrollId = p.payrollId上从Payroll p左外连接EmpMasterPayroll e中选择p。*。

任何人都可以编写LINQ to SQL的翻译。我有一个名为dcPayroll的数据上下文。

提前致谢,

1 个答案:

答案 0 :(得分:0)

要从Payroll中获取所有在EmpMasterPayroll中没有条目的条目,这应该有效:

from p in dcPayroll.Payroll
where p.MasterPayroll == null
select p;

我假设你在这两个表之间有一个linq to sql关联,而子表名为“MasterPayroll”。

替代:

from p in dcPayroll.Payroll
where !(from mp in dcPayroll.MasterPayroll select mp.payrollid).Contains(p.payrollid)
select p;