2010-08-20 3 views
1

은 내가 쓰고 있어요 응용 프로그램이 LINQ 쿼리를 사용LINQ 쿼리 단순화?

internal int GetNoteCount(DateTime startDate, DateTime endDate) 
{ 
    var a = DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate); 
    var b = a.Where(n => n.LastRevised <= endDate); 
    return b.Count(); 
} 

물론, 쿼리가 두 날짜 사이에 떨어지는 노트를 가져옵니다. 처음 두 줄을 하나로 통합하여 쿼리를 단순화하고 싶습니다. 유창한 구문을 사용하여 쿼리 끝에 Count() 메서드 호출을 추가 할 수 있다는 것을 알고 있습니다.

여기 내 질문 : 어떻게 두 쿼리를 통합 할 수 있습니까? 분명히 & & 연산자는 두 개의 람다 식과 함께 작동하지 않습니다. 당신의 도움을 주셔서 감사합니다.

답변

3

이 작업을 수행 할 수 있습니다

internal int GetNoteCount(DateTime startDate, DateTime endDate) 
{ 
    return DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate && n.LastRevised <= endDate).Count(); 
} 

그냥, 전체가 아닌 람다 : 당신의 조건에 &&를 사용

+0

그는 .Count()를 반환한다는 것을 잊지 마십시오. –

+0

@Jacob - 감사합니다. 추가 : –

+0

고마워요! 수락 및 +1 –

1

첫째, 거기 & & 운영자 아무 문제 없습니다 그리고 그것은 잘 작동합니다 . LINQ와

var a = DataStore.ObjectContext.Notes.Where(n => n.LastRevised >= startDate && n.LastRevised <= endDate); 
return a.Count(); 

둘째, 그것은 .Count (까지 쿼리를 수행 지연됩니다) 그래서 당신의 예를 본 일 사이에 기능 차이가 없습니다.