如何在LINQ to SQL中加入多个(OR)条件?

时间:2010-07-08 21:20:48

标签: vb.net linq-to-sql

我将如何执行此SQL查询

Select Distinct s.* 
from #ScopeIDs x
Join Scopes s on s.ScopeID=x.ScopeID or x.ScopeID is null
LINQ to SQL中的

? (此查询将返回其ScopeID存在于#ScopeIDs中的所有Scope,除非#ScopeIDs中的一个条目为null,在这种情况下它将返回所有Scopes)。

“文字”翻译不起作用,因为LINQ不支持加入多个条件 - 沿着这些行编写代码......

From x in ScopeIDs
Join s in Scopes on s.ScopeID equals x.ScopeID or x.ScopeID equals nothing
Distinct Select s

...无法编译。

1 个答案:

答案 0 :(得分:0)

不完全是您问题的答案,但我相信您的查询

Select Distinct s.*  
from #ScopeIDs x 
Join Scopes s on s.ScopeID=x.ScopeID or x.ScopeID is null 

通常表示为等效

select Distinct s.*  
from #ScopeIDs x 
right join Scopes s on s.ScopeID=x.ScopeID