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();
これに関する問題は、顧客が複数の関心を持ち、そのうちの 1 つが「サッカー」である場合、それらすべてが返されることです。逆の問題を持つ All() も調べました。つまり、興味が 1 つあり、それがサッカーの場合にのみ返されます。2 つあり、そのうちの 1 つがサッカーでない場合は何も返されません。
誰でもアイデアはありますか?