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

  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • maxman.tv

    maxman.tv

    29 EKİM 2013
  • ShoSho

    ShoSho

    20 Ocak 2010