Problemi durante il caricamento di più livelli con Entity Framework Plus


Domanda

Sto avendo problemi con Entity Framework Plus. Non riesco a capire come funziona il caricamento di più livelli.

La seguente query funziona correttamente. Ricevo l'utente con l'elenco di indirizzi previsto.

var user = _dataContext.Users
                .Where(u => u.UserName == username)
                .IncludeFilter(u => u.Addresses.Where(a => !a.Deactivated.HasValue))
                .SingleOrDefault();

Ma la seguente domanda lo fa a pezzi.

var user = _dataContext.Users
                .Where(u => u.UserName == username)
                .IncludeFilter(u => u.Addresses.Where(a => !a.Deactivated.HasValue))
                .SingleOrDefault();

Ricevo l'utente, ma ora la mia lista di indirizzi è vuota.

Sto usando EF6 e EF + v1.7.14.0

Grazie in anticipo a tutti coloro che possono aiutare.

Ciao Craig

Risposta popolare

Arrgh! Che droga! Ho bisogno di farlo in due dichiarazioni ... il che ha perfettamente senso. Stavo selezionando il tipo di indirizzo e ho lasciato l'indirizzo.

La mia query deve essere la seguente:

var user = _dataContext.Users
                .Where(u => u.UserName == username)
                .IncludeFilter(u => u.Addresses.Where(a => !a.Deactivated.HasValue))
                .IncludeFilter(u => u.Addresses.Where(a => !a.Deactivated.HasValue).Select(a => a.AddressType))
                .SingleOrDefault();

Grazie. Sei un campione!





Autorizzato sotto: CC-BY-SA
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché