Entity Framework - Linq to Entities - Viele-zu-viele-Abfrageprobleme

entity-framework left-join linq-to-entities many-to-many

Frage

Ich habe Probleme, viele-zu-viele-Beziehungen in Linq To Entities abzufragen. Ich versuche im Grunde diese Abfrage mit Linq zu replizieren:

Select * 
FROM Customer 
LEFT JOIN CustomerInterest ON Customer.CustomerID = CustomerInterest.CustomerID
LEFT JOIN Interest ON CustomerInterest.InterestID = Interest.InterestID
WHERE Interest.InterestName = 'Football'

Ich habe mich im Netz umgesehen und nicht wirklich geeignete Beispiele dafür gefunden. Das nächste was ich habe ist:

List<Customer> _Customers = (from _LCustomers in _CRM.Customer.Include("CustomerInterest.Interest")
                                  where _LCustomers.CustomerInterest.Any(x => x.Interest.InterestName == "Football")
                                  select _LCustomers).ToList();

Das Problem dabei ist, dass, wenn ein Kunde mehr als ein Interesse hat und einer von ihnen "Fußball" ist, alle zurückgegeben werden. Ich habe mir auch All () angesehen, das das umgekehrte Problem hat, dh es wird nur zurückkehren, wenn sie ein Interesse haben, und es ist Fußball, wenn sie zwei haben und einer von ihnen kein Fußball ist, wird nichts zurückgegeben.

Hat jemand Ideen?

Beliebte Antwort

Versuche dies,

var result = from c in ctx.Customer
             from i in c.Interest
             where i.InterestName == "Football"
             select c;

Hoffe das hilft,

Strahl.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum