2012-07-03 24 views
10

ich eine Klasse, eine Tabelle auf Datenbank darstellt, die definiert ist:mit Linq mit mehreren, wo die Bedingungen

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

, auf dem ich möchte einige Suchabfrage gegen Oracle-Datenbank auszuführen.

Nun ist die Frage:

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

Ist es besser, mehrere Zeilen zu verwenden, mit dem die Bedingung oder ein? Und warum ... bitte

Soweit ich verstehe, verwende ich mehrere where-Klauseln, wenn ich nach dem Ergebnis der ersten Bedingung suchen möchte.

+2

See [Proper Linq where-Klauseln] (http://stackoverflow.com/a/6360037/1072626) – vossad01

Antwort

7

Es sollte keine Rolle

Sie sind Ausdruck Baum nur erstellen, die auf die Oracle-Provider übergeben wird, und es ist die Aufgabe der Provider die resultierende SQL-Abfrage zu erstellen. Auch wenn der Ausdrucksbaum zwischen den beiden etwas unterschiedlich sein sollte, sollte er dennoch zu demselben sql führen. Ich möchte einen SQL Profiler verwenden, um sicherzustellen, dass meine Linq-Abfragen effiziente SQL produzieren.

Verwandte Themen