Comment puis-je écrire SÉLECTIONNER from matable where id IN (SELECT...) dans Linq?
-
09-06-2019 - |
Question
Comment avez-vous réécrire ce dans Linq?
SELECT Id, Name FROM TableA WHERE TableA.Id IN (SELECT xx from TableB INNER JOIN Table C....)
Donc en clair, je veux sélectionner l'Id et le Nom de la TableA où TableA l'Id est dans un jeu de résultats d'une deuxième requête.
La solution
from a in TableA
where (from b in TableB
join c in TableC on b.id equals c.id
where .. select b.id)
.Contains(a.Id)
select new { a.Id, a.Name }
Autres conseils
LINQ prend en charge sous la forme d'contient.Penser "de la collection.Contient(id)" au lieu de "id IN (collection)".
from a in TableA
where (
from b in TableB
join c in TableC
on b.id equals c.id
select b.id
).Contains(TableA.Id)
select new { a.Id, a.Name }
Voir aussi ce blog post.
Il n'y a pas de support de la boîte pour EN dans LINQ.Vous avez besoin pour joindre 2 requêtes.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow