實體框架 - Linq To Entities - 多對多查詢問題

entity-framework left-join linq-to-entities many-to-many

我在查詢Linq To Entities中的多對多關係時遇到問題。我基本上嘗試使用Linq複製此查詢:

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()有逆問題,即只有他們有一個興趣才會返回,而且只有足球,如果他們有兩個,而其中一個不是足球,則不返回任何東西。

有人有任何想法嗎?

熱門答案

試試這個,

var result = from c in ctx.Customer
             from i in c.Interest
             where i.InterestName == "Football"
             select c;

希望這可以幫助,

射線。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因