: What is difference between Where and Join in linq?LINQ - 使用where或join - 性能差異?基於這個問題
我的問題是以下幾點:
是否有以下兩個語句的性能差異:
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 };
和
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 };
我會因爲它更清楚,總是使用第二個。
我現在的問題是,第一個比第二個慢嗎? 是否構建cartesic產品並使用where子句過濾?
謝謝。
非常好的答案,並使用連接的性能應該會更好? – kamahl 2010-06-10 12:24:41
@帕特里克:表演將取決於確切的情況。如果LINQ to SQL將其轉換爲相同的SQL,那麼顯然這不會有什麼區別。但是,是的,通常一個連接*應該*表現更好。我確信有例外的情況下它不會通過:) – 2010-06-10 12:35:28