SORU
30 Mayıs 2012, ÇARŞAMBA


Varlık Çerçevesi Özellikleri Birden çok Düzeyleri Vardır

İnclude() yöntemi çalışır oldukça iyi nesneleri Listeler. Ama eğer iki düzeyden daha derin gitmek istersem ne olur? Örneğin, aşağıdaki yöntemi dahil özellikleri burada gösterilen ApplicationServers dönecektir. Ancak, ApplicationsWithOverrideGroup diğer karmaşık nesneleri tutan başka bir konteyner. Ben bir ekleme() bu özellik de? Ya nasıl bu özelliği tam olarak yüklemek için alabilir miyim?

Şimdi durum böyleyken, bu yöntemi:

public IEnumerable<ApplicationServer> GetAll()
{
    return this.Database.ApplicationServers
        .Include(x => x.ApplicationsWithOverrideGroup)                
        .Include(x => x.ApplicationWithGroupToForceInstallList)
        .Include(x => x.CustomVariableGroups)                
        .ToList();
}

Sadece Etkin özelliği (aşağıda) dolduracaktır ve Uygulama veya CustomVariableGroup özellikleri (aşağıda). Bunu nasıl gerçekleştiririm?

public class ApplicationWithOverrideVariableGroup : EntityBase
{
    public bool Enabled { get; set; }
    public Application Application { get; set; }
    public CustomVariableGroup CustomVariableGroup { get; set; }
}

CEVAP
30 Mayıs 2012, ÇARŞAMBA


query.Include(x => x.Collection.Select(y => y.Property))

Daha fazla örnek için Remarks bkz.

public IEnumerable<ApplicationServer> GetAll()
{
    return this.Database.ApplicationServers
        .Include(x => x.ApplicationsWithOverrideGroup.Select(y => y.Application))
        .Include(x => x.ApplicationsWithOverrideGroup.Select(y => y.CustomVariableGroup))
        .Include(x => x.ApplicationWithGroupToForceInstallList)
        .Include(x => x.CustomVariableGroups)
        .ToList();
}

Include() uzantısı bir yöntem olduğundan, using System.Data.Entity; kullanarak tablolar içinde olduğundan emin olmak gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • lilstevie89

    lilstevie89

    25 Mart 2011
  • Tech4Geeks

    Tech4Geeks

    8 Ocak 2012