我在将此SQL语句转换为linq查询时遇到问题。我还没有找到一种方法如何在OR的JOIN条件中使用null。 以下是示例SQL语句:
SELECT a.* FROM TableA a JOIN TableB b ON (a.Id = b.Id) OR a.Id IS NULL
什么是等效的linq声明?我正在寻找一个与上述SQL语句中的连接条件相同的连接条件。
from a in TableA join b in TableB on ??? equals ??? select a;
我搜索了一个现有的帖子,但显然无法在这个特定问题上找到一个帖子。 感谢。
答案 0 :(得分:0)
join
非常挑剔,因此您只能将它们用于非常具体的事情。但是,使用嵌套的from
语句很容易获得相同的结果:
from a in TableA
from b in TableB
where a.Id == b.Id or a.Id == null
select a;
此外,根据您真正想要查找的数据,这可能是一个更合适的查询:
from a in TableA
where a.Id == null || TableB.Any(b => b.Id == a.Id)
select a;