J'ai écrit le code suivant:déclarations Linq ont besoin d'optimiser
//get the user from the DB
var tmpuser = _db.aspnet_Users.First(q => q.UserName == user.Identity.Name);
//list the direct connections to Verbond
List<Verbond> verb1 = tmpuser.UsersVerbondens
.Where(q => q.Schooljaar.Sch_Schooljaar == schooljaarparam)
.Select(q => q.Verbond)
.ToList();
//list the connected Facturatieverbonden
List<FacturatieVerbonden> verb2 = tmpuser.UsersFacturatieVerbondens
.Where(q => q.Schooljaar.Sch_Schooljaar == schooljaarparam)
.Select(q => q.FacturatieVerbonden)
.ToList();
//loop through the facturatieverbonden and add their verbonds to the first list
foreach (FacturatieVerbonden v in verb2) {
verb1.AddRange(v.Verbonds);
}
//make a distinct list
List<Verbond> test = verb1.Distinct().ToList();
Ainsi, les utilisateurs peuvent être connectés à 0 ou plus facturatieverbonden
et peut également être connecté à verbond
. Un facturatieverbonden
peut avoir un ou plusieurs verbond
sous lui-même.
Ce dont j'ai besoin est une liste de tous les verbond
auxquels l'utilisateur est connecté, directement ou indirectement via le facturatieverbonden
.
Mon code fonctionne mais je ne pense pas que ce soit très efficace. Des conseils pour le rendre plus propre?
Bonne idée mais petit problème: q.Verbond et vf.Verbonds (pluriel) sont de types différents. –
David B: C'est le problème avec la programmation dans une langue étrangère - il est difficile de dire quand quelque chose n'a pas de sens. Est-ce que je l'ai maintenant? – Gabe
fonctionne génial !!! :) – Stefanvds