Tải trọng lười trong Khuôn khổ Thực thể là hiện tượng mặc định xảy ra khi tải và truy cập các thực thể liên quan. Tuy nhiên, tải háo hức được gọi là thực hành lực tải tất cả các mối quan hệ này. Tôi đã đi qua các câu hỏi dưới những gì tình hình mong muốn tải có thể có lợi hơn so với lười biếng tải. Yêu cầu điều này, bởi vì rõ ràng là việc tải xuống lười biếng thân thiện hơn và thậm chí nếu chúng ta sử dụng phương thức ToList()
, chúng ta vẫn có thể tận dụng được hành vi tải lười. Tuy nhiên, tôi nghĩ có lẽ tải lười biếng làm tăng số lượng yêu cầu đến cơ sở dữ liệu thực tế và có thể đó là lý do tại sao đôi khi nhà phát triển sử dụng phương thức Inlcude
để buộc tải tất cả các mối quan hệ. Ví dụ, khi sử dụng Visual Studio auto-scaffolding trong MVC 5, phương thức Index được tạo tự động trong controller luôn sử dụng Eager Loading, và tôi luôn có câu hỏi tại sao Microsoft sử dụng Eager Loading theo mặc định trong trường hợp đó.Tải Lười Biếng và Tải Eager Đang tải
Tôi sẽ đánh giá cao nếu ai đó giải thích cho tôi theo tình huống tải mong muốn sẽ mang lại lợi ích hơn là tải lười biếng và tại sao chúng tôi sử dụng nó trong khi có thứ gì đó thân thiện hơn như tải Lazy.
Hãy tưởng tượng một tình huống mà bối cảnh db của bạn sẽ được xử lý và tải lười biếng không thể xảy ra nữa. Sau đó, tải háo hức là có lợi. – Transcendent
Tôi đã thấy rất nhiều dự án không thành công do vấn đề về hiệu suất do vấn đề "N + 1 Select" sẽ xảy ra nhanh hơn khi tải xuống, vì vậy hãy chắc chắn xem xét số –