Entity Framework - 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;

Надеюсь это поможет,

Ray.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow