エンティティフレームワーク - エンティティへのリンク - 多対多クエリの問題

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();

これに関する問題は、顧客が複数の興味を持ち、そのうちの1つが「フットボール」である場合、それらすべてが返されることです。私はまた、逆の問題を抱えているAll()についても見てきました。つまり、関心が1つあり、それがフットボールである場合にのみ返されます。

誰かアイデアがありますか?

人気のある回答

これを試して、

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は合法ですか? はい、理由を学ぶ