J'ai eu beaucoup de mal à obtenir cette requête, donc j'espère que StackOverflow pourra me diriger dans la bonne direction.Multi-Table LinqToSql Aggregate Fonction
J'ai trois tables:
- Territoires (TerritoryID, TerritoryName, etc.)
- UserTerritories (Juste un gerrund)
- Utilisateurs (UserId, UserName, StatusID)
I besoin d'obtenir tous les territoires qui ont un ou plusieurs utilisateurs avec un ID de statut de (disons) 3.
Tout ce que j'ai vraiment été en mesure d'obtenir de compiler est reliant toutes les tables :(
IEnumerable<Territory> territories = (from t in db.Territories
join uXt in db.User_x_Territories on t.TerritoryId equals uXt.UserID into tJoin
from uXt in tJoin.DefaultIfEmpty()
join u in db.Users on uXt.UserID equals u.Id into uJoin
from u in uJoin.DefaultIfEmpty()
select t);
Quelqu'un peut-il me aider? Tout ce que j'ai pu trouver en ligne sont des exemples assez simples.
Cela ne vous donnera-t-il pas un produit cartésien si vous avez plus d'un utilisateur admissible ayant le même territoire? –
@Adam je l'ai mis à jour pour faire plus de sens, mais l'esprit reste: il suffit de vérifier les relations s'il y a un utilisateur à travers les relations qui a un 3 comme l'ID d'état :) – eglasius
+1 pour plus lisible que le mien;) –