NHibernate ORDER BY CURRENT_TIMESTAMP

时间:2016-01-13 11:40:40

标签: sql-server nhibernate pagination

有人可以解释为什么MsSql2012Dialect上的NHibernate会生成无法由服务器处理的查询吗?当没有明确指定排序时,它以这种方式构建查询。

...
ORDER BY CURRENT_TIMESTAMP
OFFSET 0 ROWS FETCH FIRST 10 ROWS ONLY 

1 个答案:

答案 0 :(得分:5)

这是jira中注册的未解决的错误,根据建议,这是我的工作:

public class MyMsSql2012Dialect : MsSql2012Dialect
{
    public override SqlString GetLimitString(SqlString querySqlString, SqlString offset, SqlString limit)
    {
        var result = base.GetLimitString(querySqlString, offset, limit);

        return result.Replace("ORDER BY CURRENT_TIMESTAMP", "ORDER BY 1");
    }
}