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 구문으로 컴파일합니다. 무엇을해야합니까?

인기 답변

귀하의 질문은 github 에서 교차 게시되고 해결 된 것으로 보입니다.

이 문제에 대한 해결책은 Arthur Vickers가 말한 것처럼 프로젝트의 Startup.cs 로 가서 UseRowNumberForPaging() 을 db의 옵션 빌더에 추가하는 것입니다.

services.AddDbContext<ApplicationDbContext>(
  options => {
    options.UseSqlServer(
      this.config.GetConnectionString("MyDatabaseConnectionString"),
      builder => builder.UseRowNumberForPaging()
    );
  }
);

나는 이것을 .NET Core 2로 테스트했는데 제대로 작동한다.




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