일부 REST 경로에서 페이징되고 필터링 된 결과가 반환됩니다. 내 코드를 단순화하면, 이런 식입니다 :Entity Framework를 사용하여 하나의 쿼리를 선택하여 계산합니까?
var query = db.SomeTable.Where(row => row.SomeProperty > 42);
return new Result {
data = query.Skip(skip ?? 0).Take(take ?? 25).ToList(),
count = query.Count() };
이 작동하지만 SQL Server 데이터베이스에 두 개의 쿼리 생성 : 그들을 계산하는 두 번째 데이터를 가져 오는 하나. 수작업으로 작성된 T-SQL 쿼리를 사용하지 않고 하나의 쿼리에서이 작업을 수행하는 방법은 무엇입니까?
손으로 쓴 쿼리는 둘 다 데이터를 선택합니다 (수집되지 않음). (집계 된) 레코드의 수를 계산합니까? – Jamiec
첫 번째 행의 끝에 "ToList()"를 실행할 수 있지만 처음에는 데이터베이스에서 SomeProperty> 42 인 모든 행을 가져옵니다. – Sasse
두 개의 SQL 쿼리를 생성 할 방법이 없다는 것이 나에게 발생했습니다. 각 레코드의 수를 반환합니다. – reckface