2012-07-03 6 views
10

내가 정의 된 데이터베이스의 테이블을 나타내는 클래스가 어디 다중와 Linq에를 사용 : 나는 오라클 데이터베이스에 대해 일부 검색 쿼리를 실행하려면조건이

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

있는합니다.

이제 질문은 :

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

이 여러 행을 사용하는 것이 좋습니다 곳 조건이나 하나? 그리고 왜 ... 제발

내가 아는 한, 여러 조건절을 사용하여 첫 번째 조건의 결과를 검색하려고합니다.

+2

보기 [Linq에 적절한 곳에 절 (http://stackoverflow.com/a/6360037/1072626) – vossad01

답변

7

당신이 바로 오라클 공급자에게 전달되는 식 트리를 작성하고 그 결과 SQL 쿼리를 작성하는 공급자의 일이다

문제가 안된다. 식 트리가 둘 사이에서 약간 다르더라도 여전히 동일한 SQL을 가져야합니다. 필자는 SQL 프로파일 러를 사용하여 linq 쿼리가 효율적인 SQL을 생성하는지 확인합니다.