Besoin d'aide avec une jointure Opposite to Inner via LINQ
-
05-07-2019 - |
Question
J'ai deux tables dans un jeu de données XML. T1, T2. Chacune des tables a une colonne ID.
T1 a une liste de clients T2 a une liste de commandes
Je souhaite créer une requête LINQ qui renvoie uniquement l'ID des clients qui n'ont pas de commande. En d'autres termes, les identifiants client n'existant pas dans la table T2.
Oh oui, j'utilise C #
Merci!
La solution
Je pense que cela fonctionnera (merci de l'adapter à vos DataSets):
var query = from c in T1
where !(from o in T2 select o.CustomerID)
.Contains(c.CustomerID)
select c;
Autres conseils
Cela nécessite une jointure externe et une vérification de null.
var result = from c in Customers
join d in Details on d.CustomerID equals c.ID into g
where !g.Any()
select c;
Vous avez juste besoin de nous une clause where et de tout:
T1.Where( item1 => T2.All( item2 => item1.ID != item2.ID ) );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow