2010-05-20 3 views
18

엔티티에 Linq를 사용하고 있으며 쿼리 할 때 제한된 수의 레코드를 가져올 수 있는지 알고 싶습니다. 쿼리가 orderby와 다른 절을 수행 할 때 최상위 N 레코드가 필요합니다. 이것이 가능합니까 아니면 foreach 루프를 사용하여 상위 N 개를 얻어야합니까?엔티티에 LINQ를 사용하여 상위 N 개의 레코드 가져 오기

+0

HTTP 건너 뛸 수 있습니다 : // 유래합니다. com/questions/2874599/get-top-n-records-linq-to-entities –

답변

28

.Take 메서드 호출을 사용하면 몇 가지 결과를 얻을 수 있습니다. here에 대한 자세한 내용을 볼 수 있습니다.

누군가가 GetEnumerator()을 실행하지 않으면 쿼리가 실행되지 않는다는 것을 이해해야합니다.

28

여러 가지 방법

1)

var data = (from p in db.people 
      orderby p.IdentityKey descending 
      select p).Take(100); 

2)

var query = db.Models.Take(100); 

3)이있다거나 특정 결과

var data = (from p in people 
      select p).Skip(100); 
+0

IdentityKey가 Guid 인 경우 어떻게됩니까? 어떤 해결책? –

+0

그런 다음 정렬하지 않거나 다른 열 값을 정렬하십시오. –

관련 문제