Il metodo Include () funziona abbastanza bene per gli elenchi sugli oggetti. E se avessi bisogno di approfondire due livelli? Ad esempio, il metodo seguente restituirà ApplicationServers con le proprietà incluse mostrate qui. Tuttavia, ApplicationsWithOverrideGroup è un altro contenitore che contiene altri oggetti complessi. Posso fare anche un Include () su quella proprietà? O come posso caricare completamente quella proprietà?
Così com'è ora, questo metodo:
public IEnumerable<ApplicationServer> GetAll()
{
return this.Database.ApplicationServers
.Include(x => x.ApplicationsWithOverrideGroup)
.Include(x => x.ApplicationWithGroupToForceInstallList)
.Include(x => x.CustomVariableGroups)
.ToList();
}
Popolerà solo la proprietà Enabled (sotto) e non le proprietà Application o CustomVariableGroup (sotto). Come posso farlo accadere?
public class ApplicationWithOverrideVariableGroup : EntityBase
{
public bool Enabled { get; set; }
public Application Application { get; set; }
public CustomVariableGroup CustomVariableGroup { get; set; }
}
Expression must be a member expression
quando provo questo: Per includere una raccolta e poi una raccolta di un livello verso il basso:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
.