2010-07-08 67 views
0

我将如何执行此SQL查询如何在LINQ to SQL中使用多个(OR)条件?

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

中的LINQ to SQL? (除非#ScopeIDs中的一个条目为空,否则此查询将返回ScopeID存在于#ScopeIDs中的所有作用域,在这种情况下,它将返回所有作用域)。

A“文字”翻译不工作,因为LINQ不支持与多个条件加盟 - 沿着这些线路代码...

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

...不能编译。

回答

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