2012-07-03 17 views
10

Ho una classe che rappresenta un tavolo sulla base di dati che è definito:utilizzando Linq con più dove le condizioni

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;} 
} 

Su quali voglio eseguire alcuni criteri di ricerca contro il database Oracle.

Ora la domanda è:

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); 

E 'meglio usare più righe con cui condizione o uno? E perché ... per favore

Per quanto ho capito, uso più clausole where quando voglio cercare sul risultato della prima condizione.

+2

Sede [corretta Linq in cui le clausole] (http://stackoverflow.com/a/6360037/1072626) – vossad01

risposta

7

Non dovrebbe importare

Stai solo creando un albero di espressione che viene passato al provider di Oracle ed è compito del provider per creare la query SQL risultante. Anche se l'albero delle espressioni sarebbe leggermente diverso tra i due, dovrebbe comunque risultare nello stesso sql. Mi piace usare un profiler SQL per assicurarmi che le mie query linq stiano producendo sql efficiente.