2014-10-21 4 views
2

항상 FirstOrDefault 절 다음에 Where 절의 조건자를 사용하여 LINQ 쿼리를 작성했습니다. FirstOrDefault 절에있는 술어로 예제를보기 시작했습니다.LINQ - Where (술어) .FirstOrDefault()는 FirstOrDefault (술어)와 같습니다.

두 개의 후드가 동일하거나 다른 하나보다 좋습니까? 대답은 EF (SQL)와 다를 수 있습니까? Linq는 메소드 체인이 느리게 평가되므로 Where 절

List<Product> products = GetProductList(); 

Product productWhere = products.Where(p => p.ProductID == 789).FirstOrDefault(); 

B. 아니오 사용

A. 절은

List<Product> products = GetProductList(); 

Product productNoWhere = products.FirstOrDefault(p => p.ProductID == 789); 

https://code.msdn.microsoft.com/LINQ-Element-Operators-0f3f12ce

답변

1

어떤 재료의 차이가 없어야 어디 둘 사이. Where.FirstOrDefaultFirstOrDefault(Predicate)처럼 값을 가져올 때 실행이 중지됩니다.

가 아니라 전체에서 한번에 (a의 LINQ 연산자의 결과 평가 Where에서 시간에서 항목 하나를 수락 (그 문제에 대해, 하류 또는 기타의 LINQ 연산자) 다른 말로, FirstOrDefault 넣어 그 후드 아래에 본질적으로 yieldreturnIEnumerable을 반환합니다.

또한
Where.FirstOrDefault vs FirstOrDefault

보기
관련 문제