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ş:
Varlık Çerçevesi Özellikleri Birden ço...
MVC3 kullanarak Varlık Çerçevesi için ...
Nasıl Varlık Çerçevesi (dosyalarda gru...
EF ETMENİZ birden fazla ve iç içe geçm...
Birden fazla sorgu cümlede java idam...