有人可以解释为什么MsSql2012Dialect上的NHibernate生成服务器无法处理的查询吗?当没有明确指定排序时,它将以这种方式构建查询。
...
ORDER BY CURRENT_TIMESTAMP
OFFSET 0 ROWS FETCH FIRST 10 ROWS ONLY
最佳答案
根据建议,这是在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");
}
}