내 모바일 앱도 검색하 테이블에서 데이터의 SQL 서버 데이터베이스에 입력됩니다. 내가 사용하여 EF 와 나를 사용하려고 매김에 대한 더 나은 성능을 제공합니다. 나는 필요한 데이터를 검색하에서의 마지막 요소이다. 그래서 만약 테이블에 있는 20 개의 행이 필요한 페이지 0,Id20,19,18,17,16 페이지 1Id15,14,13,12,11,...
이게 문제입니다:어떤 경우는 동안,사용자가"A"로 다운로드 테이블에서 데이터,사용자가"B"행 추가? 는 경우 사용자는""get0 페이지(도록 Id20, 19, 18, 17, 16), 고 사용자는"B"를 동시에 추가 행다(그래서 ID21 일),클래식 쿼리,사용자가"A"페이지 1 을 얻을 수 Id16, 15, 14, 13, 12... 그래서 다른 시간 ID16
내 코드는 것은 매우 간단하다:
int RecordsForPagination = 5;
var list = _context.NameTable
.Where(my_condition)
.OrderByDescending(my_condition_for ordering)
.Skip (RecordsForPagination * Page)
.Take (RecordsForPagination)
.ToList();
물론 Page
이 int 에서 오는 프론트 엔드.
어떻게 해결할 수 있는 문제입니까?
나는 해결책을 찾지만 나는 알지 못하는 경우 그것은 완벽한 하나입니다. 용
.SkipWhile(x => x.ID >= LastID)
대
.Skip (RecordsForPagination * Page)
그리고 물론 LastID
항상에서 전송되는 프런트 엔드.
당신이 생각하는 성능은 항상 좋은 이 코드는? 은 더 나은 솔루션은 무엇입니까?