Entity Framework - Dołącz wiele poziomów właściwości
Metoda Include () działa całkiem dobrze dla list na obiektach. Ale co, jeśli muszę przejść dwa poziomy głębiej? Na przykład poniższa metoda zwróci serwery aplikacji z przedstawionymi tutaj właściwościami. Jednak ApplicationsWithOverrideGroup to kolejny kontener, który przechowuje inne złożone obiekty. Czy mogę również dołączyć Include () do tej właściwości? Lub w jaki sposób mogę 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();
}
Wypeł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; }
}