2012-04-11 4 views
1

방금 ​​이걸 question이라고 읽었고 데이터를 검색 할 때 왜 IEnumerable을 사용해야하는지 생각하게되었습니다. IQueryableIEnumerable의 차이점을 이해하지만 IEnumerable 개체가 필터링을 허용하는 데이터에 더 좋을까요? 예를 들어, 날짜를 포함하는 레코드가있는 테이블이 있으므로 날짜를 정렬 할 수 있습니다.IEnumerable은 필터링을 허용하는 데이터에 적합한 반환 유형입니까?

답변

4

데이터베이스와 같은 다른 데이터 소스가 아닌 메모리에 개체가있는 경우 IEnumerable<T>을 사용하십시오. 이렇게하면 LINQ to Objects가 자동으로 작동합니다.

사용자 지정 확장 메서드를 작성하고 yield returnyield break을 사용하여 LINQ를 개체로 확장 할 수도 있습니다.

Entity Framework 또는 IQueryable<T>을 사용하는 다른 시스템을 사용하는 경우 객체로 사용할 때까지 IQueryable<T>으로 유지합니다.

0

다릅니다.

첫 번째 모든 데이터를받은 후에 필터링 된 의 집합을 필터링합니다. 개체은 IEnumerable을 사용합니다.

데이터베이스 (예 : Linq-to-sql/Entity Framework)에서 필터링을 사용하려면 IQueryable을 사용하십시오.

관련 문제