2010-07-08 5 views
0

Comment pourrais-je effectuer cette requête SQLComment se joindre à plusieurs conditions (OR) dans LINQ to SQL?

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

dans LINQ to SQL? (Cette requête retournera tous les Scopes dont ScopeID est présent dans #ScopeIDs, sauf si l'une des entrées de #ScopeIDs est null, auquel cas elle renvoie toutes les Scopes).

Une traduction "littérale" ne fonctionne pas, car LINQ ne supporte pas les joindre à plusieurs conditions - le code le long de ces lignes ...

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

... ne compile pas.

Répondre

0

Pas exactement la réponse à votre question, mais je crois que votre requête

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

est plus communément exprimée en équivalent

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