J'ai une relation parent-table. Dans l'exemple ci-dessous, Foo a un FooID et un ParentFooID nullable qui pointe vers un enregistrement parent.Joints conditionnels dans LINQ
La table Bar est toujours liée à l'enregistrement parent. C'est le SQL que j'utilise pour obtenir le résultat. J'ai un peu de mal à obtenir cela dans une requête LINQ. Je voudrais éviter une jointure croisée comme ce qui suit:
var q = from f in Foo
from b in Bar
where b.FooID == (f.ParentFooID ?? f.FooID)
Cheers,
Daniel
J'ai profilé le scénario from ... from et oui, il en résulte une jointure croisée qui effectue un scan d'index (pas une recherche), donc ça va être bien pire que la requête originale qui fait un recherche d'index. – Spruce
Worth testing, au moins. –