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