天天看點

ASP.NET Core Web API 如何 資料分頁 以及遇到'OFFSET' 附近有文法錯誤

最近上司叫我做的一個B/S端的小項目,突發奇想想用到core web api

今天寫資料分頁的時候,就想着 用linq分頁查詢吧,直接上代碼

_context.Skip(Size * (PageNum - 1)).Take(Size);      

于是百度了一下,linq分頁的方法很簡單,一共用到的兩個linq方法:

1.skip

2.take

簡單了解一下這行代碼,Skip表示從第幾條資料開始,Take的意思是顯示多少條資料

是以代碼就表示從第幾條資料開始取出你要的size的資料

但是問題來了!!!

我總是測試接口時總是報'OFFSET' 附近有文法錯誤,我就郁悶了。

後來了解到在2008版本以前的sql是沒有這文法的,很不巧公司用的就是老舊版本。

解決方案:在Startup.cs中的連接配接語句中添加 标紅的那句話 就可以解決問題

services.AddDbContext<XXXContext>(opt =>
                opt.UseSqlServer(context, b => b.UseRowNumberForPaging()));      

繼續閱讀