Неверный синтаксис рядом с OFFSET.Неправильное использование опции NEXT в операторе FETCH «в ядре Entity Framework» - PullRequest
0 голосов
/ 17 ноября 2018

Вот мой код EF Core:

 int page = 1, rowPerPage = 5;
 int count = ctx.Specialty.Count();
 int start = page * rowPerPage;

 var Select = ctx.Specialty.OrderByDescending(u => u.IdS)
            .Skip(start)
            .Take(rowPerPage)
            .AsEnumerable();

Я использую SQL Server 2008 и Visual Studio 2017, а также установил SQL Server 2017.Мой проект ASP.NET Core.

Ошибка:

Неверный синтаксис рядом с 'OFFSET'.Неправильное использование параметра NEXT в операторе FETCH

Я думаю, что проблема в SQL Server 2008.

Как я могу указать моему проекту использовать SQL Server 2017?

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Для этого есть параметр совместимости (UseRowNumberForPaging), который можно настроить в самом DbContext:

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var coonectionString = "Data Source=localhost\\MSSQLSERVER01;Initial Catalog=AppDb01;Integrated Security=True";
        optionsBuilder.UseSqlServer(coonectionString, builder => builder.UseRowNumberForPaging());
    }

Или как часть запуска:

    public void ConfigureServices(IServiceCollection services)
    {
        var coonectionString = "Data Source=localhost\\MSSQLSERVER01;Initial Catalog=AppDb01;Integrated Security=True";
        services.AddDbContext<AppDbContext>(options => options.UseSqlServer(coonectionString, builder => builder.UseRowNumberForPaging()));
    }
0 голосов
/ 17 ноября 2018

SQL Server 2008 не поддерживается из моего запроса

решение

public class AppDbContext : DbContext
{

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var coonectionString = "Data Source=localhost\\MSSQLSERVER01;Initial Catalog=AppDb01;Integrated Security=True";
        optionsBuilder.UseSqlServer(coonectionString);
    }
}

Значение строки подключения к целевому серверу а также введите параметры, образец кода в формате проекта ASP NET Core по умолчанию.

...