Je rencontre des problèmes lors de l'interrogation des relations plusieurs-à-plusieurs dans Linq To Entities. Je essentiellement essaie de reproduire cette requête en utilisant Linq:Entity Framework - Linq To Entities - Problèmes de requête many-to-many
Select *
FROM Customer
LEFT JOIN CustomerInterest ON Customer.CustomerID = CustomerInterest.CustomerID
LEFT JOIN Interest ON CustomerInterest.InterestID = Interest.InterestID
WHERE Interest.InterestName = 'Football'
J'ai regardé autour du filet et pas vraiment trouvé des exemples de la façon de le faire appropriés. Le plus proche que j'ai est:
List<Customer> _Customers = (from _LCustomers in _CRM.Customer.Include("CustomerInterest.Interest")
where _LCustomers.CustomerInterest.Any(x => x.Interest.InterestName == "Football")
select _LCustomers).ToList();
Le problème est que si un client a plus d'un intérêt et un d'entre eux est « football », puis ils sont tous retournés. J'ai aussi regardé All() qui a le problème inverse, c'est-à-dire ne reviendra que s'ils ont un intérêt et c'est le football, s'ils en ont deux et l'un d'entre eux n'est pas le football rien n'est retourné.
Vous avez des idées?
S'il vous plaît examiner cette question - http://stackoverflow.com/questions/1535443 et ce post - http://blogs.msdn.com/b/alexj/archive/2009/10/13/tip -37-comment-faire-un-conditionnel-include.aspx. – Kniganapolke