Tôi đang gặp sự cố khi truy vấn các mối quan hệ nhiều-nhiều trong LINQ to Entities. tôi về cơ bản cố gắng để tái truy vấn này sử dụng LINQ:Khuôn khổ thực thể - LINQ đối với thực thể - Các vấn đề truy vấn nhiều-nhiều-nhiều
Select *
FROM Customer
LEFT JOIN CustomerInterest ON Customer.CustomerID = CustomerInterest.CustomerID
LEFT JOIN Interest ON CustomerInterest.InterestID = Interest.InterestID
WHERE Interest.InterestName = 'Football'
Tôi đã nhìn quanh lưới và không thực sự tìm thấy bất kỳ ví dụ thích hợp như thế nào để làm điều này. Gần nhất tôi có được là:
List<Customer> _Customers = (from _LCustomers in _CRM.Customer.Include("CustomerInterest.Interest")
where _LCustomers.CustomerInterest.Any(x => x.Interest.InterestName == "Football")
select _LCustomers).ToList();
Vấn đề là nếu khách hàng có nhiều hơn một sở thích và một trong số đó là "Bóng đá" thì tất cả đều được trả lại. Tôi cũng đã xem xét All() có vấn đề nghịch đảo, tức là sẽ chỉ trở lại nếu họ có một sở thích và đó là bóng đá, nếu họ có hai và một trong số họ không phải là bóng đá thì không có gì được trả lại.
Bất kỳ ai có ý tưởng nào?
Vui lòng xem câu hỏi này - http://stackoverflow.com/questions/1535443 và bài đăng này - http://blogs.msdn.com/b/alexj/archive/2009/10/13/tip -37-how-to-do-a-điều kiện-include.aspx. – Kniganapolke