2012-07-03 32 views
10

Tôi có một lớp đại diện cho một bảng trên cơ sở dữ liệu được định nghĩa:sử dụng LINQ với nhiều nơi có điều kiện

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

On mà tôi muốn chạy một số truy vấn tìm kiếm đối với cơ sở dữ liệu oracle.

Bây giờ câu hỏi là:

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

Là nó tốt hơn để sử dụng nhiều hàng với nơi mà điều kiện hay một? Và tại sao ... vui lòng

Theo như tôi hiểu, tôi sử dụng nhiều mệnh đề khi tôi muốn tìm kiếm kết quả của điều kiện đầu tiên.

+2

Xem [đúng LINQ nơi khoản] (http://stackoverflow.com/a/6360037/1072626) – vossad01

Trả lời

7

Nó không phải vấn đề

Bạn chỉ việc tạo ra một cây biểu thức mà sẽ được chuyển cho các nhà cung cấp Oracle và đó là công việc của nhà cung cấp để tạo ra các truy vấn SQL kết quả. Mặc dù cây biểu thức sẽ hơi khác nhau giữa hai, nó vẫn sẽ dẫn đến cùng một sql. Tôi thích sử dụng một profiler sql để đảm bảo các truy vấn LINQ của tôi đang tạo ra sql hiệu quả.

Các vấn đề liên quan