SORU
28 Temmuz 2010, ÇARŞAMBA


Varlık çerçevesi etmeniz() sorgu Vardır birden fazla çocuk objeleri

Bu gerçekten bazı elemanter bir soru olabilir ama yayılan sorgu ÜÇ düzeyleri (veya daha fazla) yazarken birden fazla çocuk sahibi varlıkları dahil etmek için iyi bir yol ne?

4 tablo var yani ben: Company, Employee, Employee_Car ve Employee_Country

Şirket Çalışanı ile 1:m ilişki vardır.

Çalışan her iki Employee_Car ve Employee_Country ile 1:m ilişki vardır.

Eğer tüm 4 verileri Tablo döndüren bir sorgu yazmak istiyorum, şu anda yazıyorum:

Company company = context.Companies
                         .Include("Employee.Employee_Car")
                         .Include("Employee.Employee_Country")
                         .FirstOrDefault(c => c.Id == companyID);

Daha zarif bir yolu olmalı! Bu uzun soluklu ve korkunç SQL oluşturur

VS 2010 ile EF4 kullanıyorum

Şimdiden teşekkürler!

CEVAP
29 Temmuz 2010, PERŞEMBE


extension methodskullanın. DeğiştirinNameOfContextnesne içeriğinin adı ile.

public static class Extensions{
   public static IQueryable<Company> CompleteCompanies(this NameOfContext context){
         return context.Companies
             .Include("Employee.Employee_Car")
             .Include("Employee.Employee_Country") ;
     }

     public static Company CompanyById(this NameOfContext context, int companyID){
         return context.Companies
             .Include("Employee.Employee_Car")
             .Include("Employee.Employee_Country")
             .FirstOrDefault(c => c.Id == companyID) ;
      }

}

Sonra kodunuzu olur

     Company company = 
          context.CompleteCompanies().FirstOrDefault(c => c.Id == companyID);

     //or if you want even more
     Company company = 
          context.CompanyById(companyID);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • LavcoPriceTech

    LavcoPriceTe

    21 AĞUSTOS 2010
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013