SQL Server 2008とEF7(RC1) - Skip()とTake()はできませんか?

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.かを説明しIncorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement. SQL Server 2008はそれを認識しないためです。

この質問では、RC1はStartup.csのConfigureServices()で.UseRowNumberForPaging .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でテストしましたが、うまくいきました。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ