我在查詢Linq To Entities中的多對多關係時遇到問題。 我基本上是試圖複製使用LINQ此查詢:實體框架 - Linq To Entities - 多對多查詢問題
Select *
FROM Customer
LEFT JOIN CustomerInterest ON Customer.CustomerID = CustomerInterest.CustomerID
LEFT JOIN Interest ON CustomerInterest.InterestID = Interest.InterestID
WHERE Interest.InterestName = 'Football'
我環顧四周淨並沒有真正找到如何做到這一點任何合適的例子。我已經得到的最接近的是:
List<Customer> _Customers = (from _LCustomers in _CRM.Customer.Include("CustomerInterest.Interest")
where _LCustomers.CustomerInterest.Any(x => x.Interest.InterestName == "Football")
select _LCustomers).ToList();
這樣做的問題是,如果一個客戶有一個以上的興趣,其中之一是「足球」,那麼將返回所有的人。我也看到了All(),它具有相反的問題,即只有當他們有一個興趣時纔會返回,如果他們有兩個,而其中一個不是足球,則返回任何東西。
任何人有任何想法?
請看看這個問題 - http://stackoverflow.com/questions/1535443和這個職位 - http://blogs.msdn.com/b/alexj/archive/2009/10/13/tip -37-如何做-DO-A-有條件include.aspx。 – Kniganapolke 2010-05-25 12:39:25