.NET Core使用EF分頁查詢數據報錯:OFFSET語法錯誤問題

在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

相關文章
相關標籤/搜索