Я написал следующий код:
//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();
Итак, пользователи могут быть подключены к 0 или более facturatieverbonden
, а также могут быть подключены к verbond
.
A facturatieverbonden
может иметь один или несколько verbond
под собой.
Мне нужен список всех verbond
, к которым пользователь подключен, напрямую или косвенно через facturatieverbonden
.
Мой код работает, но я не думаю, что он очень эффективен.Есть какие-нибудь советы, как сделать его чище?