0
我正在尝试使用LINQ编写左外连接。在SQL样子,使用LINQ进行左外连接 - 生成不同的输出
SELECT *
FROM Table1 td1
LEFT OUTER JOIN Table2
ON td1.ColumnName = td2.ColumnName
WHERE td2.ColumnName IS NULL
ORDER BY SomeColumns
如果我运行在SQL查询分析器此查询,它返回说100条记录。我转换的LINQ代码返回105条记录。
var data= (from td1in Table1
join td2 in Table2.Where(a => a.ColumnName == (int?)null)
on td1.ColumnName equals td2.ColumnName into outer
from x in outer.DefaultIfEmpty()
orderby SomeColumns
select td1);
方法2: 我在2种方式为,
方法1书面LINQ这给作为,未能枚举结果
var data = from td1 in Table1
join td2 in Table2
on td1.ColumnName equals td2.ColumnName into outer
from item in outer.DefaultIfEmpty()
where item.ColumnName.Value == (int?)null
orderby somecolumns
select td1 ;
列在使用的例外子句是可空的int类型。
在SQL分析器中返回的结果似乎是正确的。 请帮助我获得相同的结果。
感谢
它抛出一个异常, 'data.ToList()' 扔类型的异常 'System.NullReferenceException' \t System.Collections.Generic.List {} System.NullReferenceException我 –
错误,固定,再试一次请: ) – gzaxx
非常好,非常感谢:) –