Đây có thể là một câu hỏi thực sự yếu tố nhưng một cách hay để bao gồm nhiều thực thể con khi viết một truy vấn kéo dài BA cấp độ (hoặc nhiều hơn)?
tức là tôi có 4 bảng: Company
, Employee
, Employee_Car
vàEmployee_Country
Công ty có mối quan hệ 1: m với Nhân viên.
Nhân viên có mối quan hệ 1: m với cả Employee_Car và Employee_Country.
Nếu tôi muốn viết một truy vấn trả về dữ liệu từ cả 4 bảng, tôi hiện đang viết:
Company company = context.Companies
.Include("Employee.Employee_Car")
.Include("Employee.Employee_Country")
.FirstOrDefault(c => c.Id == companyID);
Phải có một cách thanh lịch hơn! Điều này kéo dài và tạo ra SQL khủng khiếp
Tôi đang sử dụng EF4 với VS 2010
//inside public static class Extensions public static IQueryable<Company> CompleteCompanies(this DbSet<Company> table){ return table .Include("Employee.Employee_Car") .Include("Employee.Employee_Country") ; } //code will be... Company company = context.Companies.CompleteCompanies().FirstOrDefault(c => c.Id == companyID); //same for next advanced method