auf diese Frage basiert: What is difference between Where and Join in linq?LINQ - Verwenden von wo oder beitreten - Leistungsunterschied?
Meine Frage folgendes:
Gibt es einen Unterschied in der Leistung in den beiden folgenden Aussagen:
from order in myDB.OrdersSet
from person in myDB.PersonSet
from product in myDB.ProductSet
where order.Persons_Id==person.Id && order.Products_Id==product.Id
select new { order.Id, person.Name, person.SurName, product.Model,UrunAdı=product.Name };
und
from order in myDB.OrdersSet
join person in myDB.PersonSet on order.Persons_Id equals person.Id
join product in myDB.ProductSet on order.Products_Id equals product.Id
select new { order.Id, person.Name, person.SurName, product.Model,UrunAdı=product.Name };
würde ich benutze immer den zweiten, nur weil es klarer ist.
Meine Frage ist jetzt, ist die erste langsamer als die zweite? Erzeugt es ein kartesisches Produkt und filtert es danach mit den Where-Klauseln?
Vielen Dank.
Sehr gute Antwort, und mit der Verwendung von Joins sollte die Leistung besser sein? – kamahl
@Patrick: Die Leistung hängt von der genauen Situation ab. Wenn LINQ to SQL es in dasselbe SQL konvertiert, wird das offensichtlich keinen Unterschied machen. Aber ja, im Allgemeinen sollte ein Beitritt besser sein. Ich bin sicher, es gibt Ausnahmefälle, wo es nicht wäre :) –