最近上司叫我做的一個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()));