Metoda Include () działa całkiem dobrze w przypadku list na obiektach. Ale co, jeśli muszę zejść dwa poziomy w głąb? Na przykład poniższa metoda zwróci ApplicationServers z dołączonymi właściwościami pokazanymi tutaj. Jednak ApplicationsWithOverrideGroup to kolejny kontener, w którym przechowywane są inne złożone obiekty. Czy mogę wykonać Include () również dla tej właściwości? Lub w jaki sposób mogę w pełni załadować tę właściwość?
W obecnej postaci ta metoda:
public IEnumerable<ApplicationServer> GetAll()
{
return this.Database.ApplicationServers
.Include(x => x.ApplicationsWithOverrideGroup)
.Include(x => x.ApplicationWithGroupToForceInstallList)
.Include(x => x.CustomVariableGroups)
.ToList();
}
Zapełni tylko właściwość Enabled (poniżej), a nie właściwości Application lub CustomVariableGroup (poniżej). Jak to zrobić?
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
, gdy próbuję to: Aby dołączyć kolekcję a potem zbieranie jeden poziom w dół:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
.