SQL Server 2008 및 EF7 (RC1) - 건너 뛰기 () 및 가져 오기 () 할 수 없습니까?

asp.net-core entity-framework-core pagination sql-server-2008

문제

SQL Server 2012 이상에 Entity Framework 7이 LINQ를 번역하는 것으로 보이는 페이지 매김에 대한 새로운 OFFSET 구문이 있음을 알고 있습니다.

이것은 Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement. 오류가 나타나는 이유를 설명합니다 Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement. SQL Server 2008에서 인식하지 못하기 때문입니다.

이 질문 에서 누군가 RC1이 Startup.cs의 ConfigureServices() 에서 .UseRowNumberForPaging() 을 수행하는 것처럼 우리가해야 할 모든 것이라고 대답했습니다.

services.AddEntityFramework()
                    .AddSqlServer()
                    .AddDbContext<MyDbContext>(options => {
                        options.UseSqlServer("someConnectionString").UseRowNumberForPaging();                        
                    });

이것은 효과가없는 것 같습니다. 나는 여전히 같은 오류가 발생합니다. 내 생각 엔 EF7은 여전히 ​​내 LINQ를 새로운 2012+ SQL 구문으로 컴파일합니다. 무엇을해야합니까?

인기 답변

skip (). take ()를 사용하려면 SQL2012 +를 사용해야하며 sql2008에서는 작동하지 않습니다.

2008 년에는 다음을 사용할 수 있습니다.

select top 20 * from
(
select *,
ROW_NUMBER() OVER (ORDER BY columnid) AS ROW_NUM
from tablename
) x
where ROW_NUM>10



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.