Salve a tutti.
Non so come scrivere in linq una query che fa riferimento ad una relazione n ad m.
Nel mio modello ho una situazione simile alla seguente:
public class Utente
{
...
public ICollection<Ruolo> Ruoli
{
....
}
}
public class Ruolo
{
public ICollection<Utente> Utenti
{
}
}
Ora vorrei scrivere una query che mi dia l'elenco degli utenti e la descrizione del primo ruolo a cui appartengono.
Pensavo quindi di scrivere qualcosa di simile a:
var query = from u in MyDbContext.Utenti
select new { Id = u.Id, Nome = u.Nome, Ruolo = u.Ruoli.FirstOrDefault().Descrizione };
La query però non estrae alcuna riga. Specifico che per il momento non ho alcun ruolo inserito, quindi mi aspettavo di vedere 2 righe (ho due utenti) con una descrizione vuota.
Dato che non estrae nulla, ho provato a scrivere questa query
var query = from u in MyDbContext.Utenti
select new { Id = u.Id, Nome = u.Nome, NumeroRuoli = u.Ruoli.Count() };
In questo caso mi estrae giustamente due righe con numero ruoli 0...
Qualcuno sa dirmi come devo fare? Per caso devo implementare da qualche parte il modo in cui il DbContext deve interpretare il "FirstOrDefault"?
Grazie mille