2012-07-03 17 views
10

que tienen una clase que representa una tabla de la base de datos que se define:usando LINQ con múltiples donde las condiciones

public class MyClass{ 
    public int MyClassId{get;set;} 
    public string Name{get;set;} 
    public string LastNamw{get;set;} 
    public DateTime From{get;set;} 
    public DateTime To{get;set;} 
} 

En lo que quiero correr alguna consulta de búsqueda contra la base de datos Oracle.

Ahora la pregunta es:

var list = context.MyClass 
    .Where(x => x.From>= FromMyDate) 
    .Where(x => x.To <= ToMyDate); 


var list = context.MyClass 
    .Where(x => x.From>= FromMyDate && x.To <= ToMyDate); 

¿Es mejor usar varias filas con donde la condición o uno? Y por qué ... por favor

Por lo que yo entiendo, uso múltiples cláusulas where cuando quiero buscar en el resultado de la primera condición.

+2

Ver [Proper Linq donde cláusulas] (http://stackoverflow.com/a/6360037/1072626) – vossad01

Respuesta

7

No debería importar

Usted se acaba de crear un árbol de expresión que se pasa al proveedor de Oracle y es tarea del proveedor para crear la consulta SQL resultante. Aunque el árbol de Expression sería ligeramente diferente entre los dos, aún debería dar como resultado el mismo sql. Me gusta usar un generador de perfiles sql para asegurarme de que mis consultas linq produzcan SQL eficiente.

Cuestiones relacionadas