Как объединить несколько (ИЛИ) условий в LINQ to SQL? - PullRequest
1 голос
/ 09 июля 2010

Как мне выполнить этот 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, если только одна из записей в #ScopeIDs не равна нулю, в этом случае он возвращает все области).

«буквальный» перевод не работает, поскольку 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 голосов
/ 09 июля 2010

Не совсем ответ на ваш вопрос, но я считаю, что ваш запрос

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...