LoadWith
được sử dụng để thực hiện một háo hức tải của một hiệp hội như trái ngược với mặc định lười biếng tải.
Thông thường, các liên kết được tải lần đầu tiên bạn tham chiếu chúng. Điều đó có nghĩa là nếu bạn chọn 100 trường hợp Order
và sau đó thực hiện điều gì đó với từng số Details
, bạn thực sự đang thực hiện các hoạt động 101 SELECT
đối với cơ sở dữ liệu. Mặt khác, nếu LoadOptions
chỉ định LoadWith<Order>(o => o.Details)
, thì tất cả được thực hiện trong một SELECT
đơn lẻ với số JOIN
được thêm vào.
AssociateWith
không có bất kỳ ảnh hưởng khi hiệp hội được nạp, chỉ gì được tải. Nó thêm mệnh đề WHERE
mỗi khi bạn tải một liên kết.
Như bạn nói, AssociateWith
được sử dụng để tự động dữ liệu lọc. Thông thường bạn sẽ sử dụng điều này nếu bạn biết rằng một hiệp hội có một số lượng rất lớn các yếu tố và bạn chỉ cần một tập hợp con cụ thể của chúng. Một lần nữa, nó chủ yếu là một tối ưu hóa hiệu suất, chỉ là một loại khác nhau.
Dòng này làm rõ ràng cho tôi "AssociateWith không có bất kỳ ảnh hưởng nào khi liên kết được tải, chỉ những gì được tải". Cảm ơn. – stackoverflowuser