2011-05-08 3 views
0

Je crée une requête dynamique et effectue une jointure entre deux entités: la requête en cours de construction et une table.Sélection basée sur null

J'ai:

var TheQuery = ...; 

TheQuery = from x in TheQuery 
      join c in MyDataContext.TheTable on 
      x.ID equals c.ID 
      where "there's no matching element in TheTable" 
      select x 

Merci pour vos suggestions.

+2

Je ne suis pas tout à fait sûr de ce que vous demandez ici ... qu'est-ce que vous essayez de faire exactement, et qu'est-ce qui se passe réellement? – Joe

+0

Voulez-vous faire l'équivalent d'une jointure externe ici? – Dve

+0

Je ne veux conserver dans TheQuery que les éléments qui ne sont pas dans TheTable. – frenchie

Répondre

2

Pour faire une jointure externe gauche avec LINQ, vous devez utiliser join .. into et DefaultIfEmpty():

TheQuery = from x in TheQuery 
      join c in MyDataContext.TheTable on x.ID equals c.ID into outer 
      from o in outer.DefaultIfEmpty() 
      where o == null 
      select x 
+0

ok, ça a l'air bien; Merci. – frenchie

Questions connexes