El método Include () funciona bastante bien para listas en objetos. ¿Pero qué pasa si necesito ir a dos niveles de profundidad? Por ejemplo, el siguiente método devolverá ApplicationServers con las propiedades incluidas que se muestran aquí. Sin embargo, ApplicationsWithOverrideGroup es otro contenedor que contiene otros objetos complejos. ¿Puedo hacer un Incluir () en esa propiedad también? ¿O cómo puedo hacer que esa propiedad se cargue completamente?
Tal como está ahora, este método:
public IEnumerable<ApplicationServer> GetAll()
{
return this.Database.ApplicationServers
.Include(x => x.ApplicationsWithOverrideGroup)
.Include(x => x.ApplicationWithGroupToForceInstallList)
.Include(x => x.CustomVariableGroups)
.ToList();
}
Rellenará solo la propiedad Enabled (a continuación) y no las propiedades Application o CustomVariableGroup (a continuación). ¿Cómo hago que esto suceda?
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
cuando intento esto: Para incluir una colección y luego un nivel de colección de uno abajo:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
.