我正在尝试构建一个简单的查询,该查询使用 Dapper 按降序检索数据。如果这很重要,数据库是 MySql。
这是我使用的代码:
var builder = new SqlBuilder();
var sql = @$"SELECT * FROM table t /**orderby**/ LIMIT @paramSkip, @paramTake";
var template = builder.AddTemplate(sql);
builder.OrderBy("@paramOrderBy DESC", parameters: new
{
paramOrderBy = orderBy,
});
// Limit
builder.AddParameters(parameters: new
{
paramSkip = skip,
paramTake = take
});
return Connection.QueryAsync<TableModel>(
template.RawSql, template.Parameters,
transaction: Transaction
);
这总是按升序返回数据。DESC 只是被忽略。我尝试在查询中使用 DESC 关键字或作为参数,但结果是相同的。
唯一有效的是将订单参数和 DESC 关键字放入查询本身(通过字符串插值)
(编辑:错别字和文字简化)