Comment puis-je écrire SÉLECTIONNER from matable where id IN (SELECT...) dans Linq?

StackOverflow https://stackoverflow.com/questions/45634

  •  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.

Était-ce utile?

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
scroll top