在Asp.Net Core MVC項目中使用EF分頁查詢數據時遇到一個比較麻煩的問題,系統會報以下錯誤:spa
分頁查詢代碼:翻譯
1 var newQuery = query.Skip((condition.CurrentPage - 1) * condition.PageSize).Take(condition.PageSize);
EF生成的Sql語句:code
1 SELECT xxx FROM Table xxx 2 ORDER BY [rx].[Date] DESC, [rx].[UpdateTime] DESC 3 OFFSET @__p_7 ROWS FETCH NEXT @__p_8 ROWS ONLY',N'@__condition_UserId_0
緣由是EF在翻譯Skip,Take語句時默認使用了Sql Server2012的新特性,OFFSET * FETCH Next的語法,可是改語法不支持2012如下版本的SqlServer,因此會出現上面的錯誤信息。blog
升級SqlServer2012就能夠解決上述問題。ip