반응형
Linq에서 목록으로 반환되는 결과 수 제한
Linq / EF4.1을 사용하여 데이터베이스에서 일부 결과를 가져오고 결과를 (X) 가장 최근 결과로 제한하고 싶습니다. 여기서 X는 사용자가 설정 한 숫자입니다.
이를 수행하는 방법이 있습니까?
현재 List결과 집합을 제한하는 데 도움이 되는 것처럼 다시 전달하고 있습니다. X를 누를 때까지 반복하여 이것을 제한 할 수 있지만 추가 데이터를 전달하지 않는다고 가정합니다.
관련성이있는 경우를 대비하여 ... SQL Server 데이터베이스에서 실행되는 C # MVC3 프로젝트.
Take기능 사용
int numberOfrecords=10; // read from user
listOfItems.OrderByDescending(x => x.CreatedDate).Take(numberOfrecords)
listOfItems엔터티 개체의 목록이고 CreatedDate생성 된 날짜 값이있는 필드 라고 가정 합니다 (여기에서 최근 항목을 가져 오기 위해 내림차순으로 정렬하는 데 사용됨).
Take () 함수는 시퀀스의 시작 부분에서 지정된 수의 연속 요소를 반환합니다.
http://msdn.microsoft.com/en-us/library/bb503062.aspx
results = results.OrderByDescending(x=>x.Date).Take(10);
OrderByDescending은 날짜 / 시간 속성 (또는 최신 항목을 가져 오는 데 사용할 논리 포함)별로 항목을 정렬하고 Take는 처음 x 항목 (순서 덕분에 가장 최근 항목)으로 제한합니다.
편집 : 첫 번째 행에서 시작하지 않는 일부 행을 반환하려면 다음 을 사용하십시오 Skip().
results = results.OrderByDescending(x=>x.Date).Skip(50).Take(10);
Take()목록으로 변환하기 전에를 사용하십시오 . 이러한 방식으로 EF는 생성 한 쿼리를 최적화하고 필요한 데이터 만 반환 할 수 있습니다.
반응형
'Nice programing' 카테고리의 다른 글
| PuTTY를 사용하여 Windows에서 Linux에서 명령 실행 자동화 (0) | 2020.11.26 |
|---|---|
| 하나의 레코드에서 여러 단어를 일치시키는 MySQL SELECT LIKE 또는 REGEXP (0) | 2020.11.26 |
| Visual Studio에서 다중 선택? (0) | 2020.11.26 |
| Firestore로 "객체 배열"을 업데이트하는 방법은 무엇입니까? (0) | 2020.11.26 |
| 콘솔 응용 프로그램에서 winform을 실행하는 방법은 무엇입니까? (0) | 2020.11.26 |