Include () yöntemi nesnelerdeki Listeler için oldukça iyi çalışır. Peki ya iki seviye derine inmem gerekirse? Örneğin, aşağıdaki yöntem, burada gösterilen özelliklerle ApplicationServers döndürür. Ancak ApplicationsWithOverrideGroup, diğer karmaşık nesneleri tutan başka bir kapsayıcıdır. Bu mülk üzerinde de bir Include () yapabilir miyim? Veya bu mülkün tamamen yüklenmesini nasıl sağlayabilirim?
Şimdi olduğu gibi, bu yöntem:
public IEnumerable<ApplicationServer> GetAll()
{
return this.Database.ApplicationServers
.Include(x => x.ApplicationsWithOverrideGroup)
.Include(x => x.ApplicationWithGroupToForceInstallList)
.Include(x => x.CustomVariableGroups)
.ToList();
}
Application (Özel) veya CustomVariableGroup özelliklerini (aşağıda) değil, yalnızca Enabled özelliğini (aşağıda) doldurur. Bunu nasıl yapabilirim?
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
bu çalıştığınızda: Bir toplama ve ardından bir koleksiyon bir düzey aşağı dahil etmek için:query.Include(e => e.Level1Collection.Select(l1 => l1.Level2Collection))
.