У меня возникают проблемы с запросом отношений «многие ко многим» в Linq To Entities. Я в основном пытаюсь повторить этот запрос с помощью Linq:Entity Framework - 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-как-дела-а-условного-include.aspx. – Kniganapolke