您的瀏覽器不支援JavaScript功能,若網頁功能無法正常使用時,請開啟瀏覽器JavaScript狀態
Antfire 的生活雜記
Skip
    banner

    Entity Framework Core 2 Invalid Usage of the option NEXT in the FETCH statement

    Entity Framework Core 2 Invalid Usage of the option NEXT in the FETCH statement

    問題描述

    使用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())``
    
    即可收工。
    

     Comments