Trong điều khiển được tạo ra bởi Visual Studio, cũng như các ứng dụng mẫu (ContosoUniversity), hành động Index luôn có cái gì đó nhưMục đích của Bao gồm() trong ASP.NET MVC + Entity Framework
var departments = db.Departments.Include(d => d.Administrator);
gì sự khác biệt giữa điều đó và
var departments = db.Departments;
Đầu tiên tôi nghi ngờ rằng người đầu tiên (có Bao gồm) cho phép chế độ xem truy xuất bộ phận.Quản trị viên. Nhưng thứ hai (không bao gồm) dường như cũng có thể làm điều đó.
Không chắc chắn nếu tôi hiểu nó một cách chính xác. Với Bao gồm, EF sẽ sử dụng tham gia để lấy cả Sở và Quản trị viên của họ trong một truy vấn. Nếu không có Bao gồm, EF sẽ chỉ lấy các Sở và sau đó lấy Quản trị viên của họ theo yêu cầu? Vì vậy, nếu tôi chỉ cần một hoặc hai Quản trị viên trong các Cơ sở, tôi không nên sử dụng Bao gồm. Nhưng nếu tôi cần Quản trị viên của tất cả (hoặc hầu hết) Deparments, tôi nên sử dụng Bao gồm. – Jim
Chính xác, bao gồm buộc các Quản trị viên được tải trong cùng một truy vấn tải các Sở. Nếu không có bao gồm, các quản trị viên được nạp một lúc một lần theo yêu cầu. –
@Jim, cụ thể, vì bạn sử dụng ASP.NET MVC, bạn không muốn Chế độ xem của mình liên hệ với cơ sở dữ liệu. Và đối với 'departments.First(). Quản trị viên 'làm việc không có quyền truy cập cơ sở dữ liệu,' Quản trị viên' cần phải được tải trước bằng cách sử dụng 'Bao gồm'. – bzlm