Неверный синтаксис при использовании Dapper - PullRequest
0 голосов
/ 06 декабря 2018

Во-первых, я выполнил запрос к базе данных, и результаты в порядке.

К модели прикреплено два свойства {Skip, Take}, и они заполнены значениями во время выполнения,однако асинхронный запрос не выполняется из-за:

Неверный синтаксис рядом с @ Take

Я протестировал более простой запрос select * from table where col1 = @Take и, кажется, работает отлично, оченьстранный.

Есть идеи?

var query = await conn.QueryAsync<ObjectModel>(
@" SELECT TOP @Take * FROM ( SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RoNum, * 
FROM table) as p
where @Skip < RoNum ORDER BY p.ID", model);

1 Ответ

0 голосов
/ 06 декабря 2018

Для SQL Server поддерживаемый синтаксис для TOP следующий:

SELECT TOP (@Take) * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RoNum, * FROM table) as p WHERE @Skip < RoNum ORDER BY p.ID

Возможно, используемая база данных имеет то же ограничение.

...