Nếu bạn, ví dụ: có một thực thể "OrderRow" và một thực thể khác "Order", sẽ có một tài sản điều hướng trên OrderRow trỏ đến Order nó thuộc về.
Hiện nay Entity Framework chỉ hỗ trợ Explicit Lazy tải có nghĩa là nếu bạn đã truy xuất một số OrderRows và muốn kiểm tra một cái gì đó trên theo thứ tự bạn cần phải:
// or is an OrderRow
if(!or.Order.IsLoaded)
or.Order.Load()
or.Order.Cancel();
Tuy nhiên nếu bạn có ngầm tải chậm bạn không cần kiểm tra IsLoaded, nó sẽ được thực hiện tự động, bạn có thể làm or.Order.Cancel()
trực tiếp và thứ tự sẽ được nạp tự động nếu cần thiết. Đây là cách linq-to-sql hoạt động và nó tiết kiệm một số đánh máy và một số rủi ro cho những sai lầm. Mặt khác, nó làm cho nó ít rõ ràng hơn khi nào và cách truy cập cơ sở dữ liệu sẽ được thực hiện như thế nào. Với tải ngầm, thật dễ dàng để viết mã không hiệu quả làm cho một vòng tròn DB cho mỗi dòng được lấy từ một bảng.
Nguồn
2010-04-04 08:22:32
Vì vậy, bạn có nghĩa là tải lười biếng rõ ràng là bắt buộc đối với các bảng có liên quan? – Tarik
Không, tải ngầm nghĩa là các bảng liên quan sẽ tự động được tải trong nền. –
.. giống như ở phía trước. Việc thực hiện sẽ chặn cho đến khi nó được tìm nạp. –