2011-02-17 13 views
23

Esta pregunta se refiere a la optimización de consultas utilizando Linq con Entity Framework.Consulta de Entity Framework Linq:. Donde cadena vs &

¿Hay alguna diferencia entre el encadenamiento .Where cláusulas y el uso de && en un solo .Where cláusula de una consulta LINQ con el framwork entidad?

Por ejemplo: supongamos que tengo el siguiente código:

var result = context.SomeEntity.Where(exp1).Where(exp2); 

o

var result = context.SomeEntity.Where(exp1 && exp2); 

Al evaluar estas declaraciones, que producen el mismo resultado, ¿el LINQ y el marco de la entidad a evaluar en de la misma manera? es decir, ¿ambos tendrán el mismo plan de ejecución y, por lo tanto, serán igualmente eficientes?

Respuesta

21

Sí, ambos tendrán el mismo plan de ejecución. He agregado un rastro sql y ambos crean las mismas declaraciones SQL

2

Siempre voy con el && porque hace que el código sea más fácil de leer. Mediante el uso de múltiples Donde esto creará mucho ruido extra y tomará el enfoque fuera de la lógica.

+3

Es más fácil de leer si las sentencias && son cortas y pocas, pero si encadenas varias declaraciones más largas, el encadenamiento .Where tiene más sentido y es más legible. – pkr298

Cuestiones relacionadas