【发布时间】:2019-10-05 23:39:19
【问题描述】:
我使用 Dapper 在大表中进行分页查询。我使用的功能是这样的:
public List<WarehouseLine> GetPagedWarehouseLines(int pageNumber, int rowsPerPage, string criteria) //todo
{
var query = @"SELECT *
FROM
(SELECT
*,
ROW_NUMBER() OVER (ORDER BY ProductDescr) AS RowNum
FROM
WarehouseLine) AS whl
WHERE
whl.RowNum BETWEEN ((@PageNumber - 1) * @RowsPerPage) + 1 AND @RowsPerPage * (@PageNumber)
AND (@Criteria)
ORDER BY ProductDescr";
return _db.Query<WarehouseLine>(query, new { PageNumber = pageNumber, RowsPerPage = rowsPerPage, Criteria = criteria }).ToList();
}
条件变量是具有以下值的字符串
(Productdescr like '%%') OR (PartNumber like '%%') OR (SerialNumber like '%%') OR(Manufacturer like '%%') OR (SpecialInstructions like '%%') OR (UDF3 like '%%') OR (producttags like '%%') OR (NotesPerPart like '%%')
除了括号,查询在 SQL Server Management Studio 中运行良好。但是在调试过程中,我收到以下错误:
在预期条件的上下文中指定的非布尔类型表达式,靠近“ORDER”。
我使用最新的稳定版 Dapper。
【问题讨论】:
标签: c# sql sql-server-2008-r2 dapper