Tôi có bảng NxN, hãy tưởng tượng:LINQ to Entities Bao gồm + Trong trường hợp Phương pháp
tài khoản (id, ...) < - UserAddresses (id, userId, AddressID, kích hoạt, ...) -> Địa chỉ (id , ...)
UserAddresses chứa FK cho người dùng và địa chỉ. Đối với những gì tôi biết, Thực thể được tạo bởi Người dùng khung thực thể, chứa một bộ sưu tập cho UserAddresses. Địa chỉ chứa một bộ sưu tập để UserAddresses, và một UserAddress cụ thể chứa một refenrece cho người dùng và một địa chỉ.
Bây giờ tôi muốn thực hiện truy vấn tiếp theo bằng LINQ. Đối với một id người dùng cụ thể, chỉ nhận được userAddresses với cờ đã bật được đặt thành true. Đối với một id người dùng cụ thể, userAddresses có thể chứa nhiều mục nhập nhưng chỉ có một mục được đặt cho người dùng cụ thể này.
Truy vấn tôi có thể làm là:
context.User.Include(x => x.UserAddresses)
.Include(x => x.UserAddresses.Select(y => y.Address))
.Single(x => x.id == USER_ID)
nhưng những gì tôi thực sự muốn không phải là để tải tất cả UserAddresses cho người dùng đó ... Chỉ một trong đó có chứa kích hoạt, setted TRUE!
Ai đó có thể giúp tôi thực hiện truy vấn này?
Bạn đang sử dụng loại 'Bao gồm' nào? Theo tôi biết phương thức 'Include' của' System.Data.Objects.ObjectQuery' chỉ nhận được 1 đối số của chuỗi? –
@KingKing Tôi đã thực hiện một phương thức mở rộng, định dạng biểu thức lambda thành chuỗi và chuyển cho phương thức ObjectQuery bao gồm "native". – anotherNeo
Nếu vậy, câu trả lời cho vấn đề của bạn là 'không thể', 'Bao gồm' không mạnh như vậy, bạn không thể thực hiện bất kỳ' bộ lọc' nào trước khi đưa vào. –