【发布时间】:2019-01-06 00:40:30
【问题描述】:
我知道 SQL Server 2012 及更高版本具有用于分页的新 OFFSET 语法,Entity Framework 7 似乎将我的 LINQ 转换为。
这解释了为什么我收到错误 Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.,因为 SQL Server 2008 无法识别它。
在this question 中,有人回答说,从 RC1 开始,我们需要做的就是在 Startup.cs 的 ConfigureServices() 上添加 .UseRowNumberForPaging()。
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyDbContext>(options => {
options.UseSqlServer("someConnectionString").UseRowNumberForPaging();
});
这似乎不起作用。我仍然遇到同样的错误。我的猜测是 EF7 仍然将我的 LINQ 编译为新的 2012+ SQL 语法。怎么办?
【问题讨论】:
-
您的查询是什么?这可能是 EF7 中的一个错误。
-
我认为这无关紧要,但是任何 db.OneOfMyEntities.Where(...)....Skip(x).Take(y).ToList() 都会产生此错误.
-
EF7-rc1 在跳过和拍摄中存在错误,正在为 RC2 处理。见github.com/aspnet/EntityFramework/…
标签: sql-server-2008 pagination asp.net-core entity-framework-core