問題描述
使用Entity Framework core 2 要取得分頁資料,執行階段出錯,錯誤訊息為invalid-usage-of-the-option-NEXT-in-the-FETCH-statement
System.Data.SqlClient.SqlException (0x80131904): 接近 'OFFSET' 之處的語法不正確。
FETCH 陳述式中的選項 NEXT 使用方式無效。```
會出現這種錯誤訊息的原因是因為 OFFSET 是在SQL Server 2012版本後才開始支援的,而我使用的是2012以前的版本,導致EF產生出來的語法 Sql Server看不懂而報錯
# 解決方法
在一開始設定DbContext的時候告訴他,請幫我在分頁的時候使用傳統的PageNumber方式我做分頁
在 Startup.cs 的 ConfigureServices方法中,注入DbContext的地方
``.UseSqlServer(....)``
幫他多加一個option參數
``.UseSqlServer(...., opt=> opt.UseRowNumberForPaging())``
即可收工。