En base a esta pregunta: ¿ What is difference between Where and Join in linq?LINQ - Usando where o join - ¿Diferencia de rendimiento?
Mi pregunta es siguiente:
¿Hay una diferencia de rendimiento en las dos afirmaciones siguientes:
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 };
y
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 };
lo haría siempre use el segundo porque es más claro.
Mi pregunta es ahora, ¿es la primera más lenta que la segunda? ¿Construye un producto cartesic y lo filtra después con las cláusulas where?
Gracias.
Muy buena respuesta, y con el uso se une el rendimiento debería ser mejor? – kamahl
@Patrick: el rendimiento dependerá de la situación exacta. Si LINQ to SQL lo convierte en el mismo SQL, obviamente eso no hará la diferencia. Pero sí, generalmente un join * debería * tener un mejor rendimiento. Estoy seguro de que hay casos excepcionales en los que no lo haría :) –