Cá nhân tôi rất vui vì không có (chính thức) EF tương đương DataLoadOptions
. Tại sao? Một vài lý do:
- Đó là quá dễ dàng để sử dụng chúng trong một cách mà trường hợp ngoại lệ được ném, xem xét phần của MSDN page.
- Tôi không thích khái niệm về bộ sưu tập con đã lọc. Khi số
Customer
có Orders
, tôi muốn thành viên Orders
đại diện cho các đơn đặt hàng của khách hàng đó (lười biếng hay không). Một bộ lọc được xác định ở một nơi khác (bởi AssociateWith
) có thể dễ dàng bị lãng quên. Tôi sẽ lọc chúng khi cần và ở đâu. Điều này dẫn đến phản đối cuối cùng:
- Quan trọng nhất: đó là trạng thái và hầu hết các lỗi đều do trạng thái không mong muốn gây ra.
DataLoadOptions
thay đổi trạng thái của DataContext
theo cách mà các truy vấn sau đó bị ảnh hưởng. Tôi thích xác định tải mong muốn ở đâu và khi nào tôi cần. Gõ là rẻ, lỗi rất đắt.
Tuy nhiên, vì lợi ích đầy đủ, tôi nên đề cập rằng Muhammad Mosa đã nỗ lực trong một số EF version of DataLoadOptions. Tôi chưa bao giờ thử nó.
Tôi nhận thấy rằng bạn có thể muốn ngăn mã lặp lại. Nhưng nếu bạn cần truy vấn có hình dạng giống nhau ở nhiều nơi, bạn đã lặp lại mã, có hoặc không có "toàn cầu" được xác định bao gồm. Cấu hình tải trung tâm háo hức là giả DRY-Ness. Và chẳng mấy chốc bạn sẽ thấy mình vấp ngã trên đôi chân của chính mình khi tải háo hức là không mong muốn nhưng, darn, nó được cấu hình để xảy ra!
Nguồn
2012-08-25 20:39:58
FYI cho bất kỳ ai xảy ra trên Google: http://www.governor.co.uk/news-plus-views/2010/2/16/entityframework-include-multiple-extension-method cũng khá hữu ích – benjy