我使用nhibernate 3与流畅的映射和MySQL5Dialect.我做分组并试图获得平均值:
var group = new TotalStatistic();
SelectList(s => s
.SelectGroup(t => t.RegistryName).WithAlias(() => group.Name)
.SelectAvg(t => t.Value).WithAlias(() => group.Average))
.TransformUsing(Transformers.AliasToBean<TotalStatistic>());
Run Code Online (Sandbox Code Playgroud)
但它生成的sql查询包含强制转换为十进制,我只得到结果中的零,而不是像我想要的"0.0035".
SELECT ... avg(cast(this_.Value as DECIMAL)) as y1_ ...
Run Code Online (Sandbox Code Playgroud) 有人可以解释为什么MsSql2012Dialect上的NHibernate生成服务器无法处理的查询吗?当没有明确指定排序时,它将以这种方式构建查询。
...
ORDER BY CURRENT_TIMESTAMP
OFFSET 0 ROWS FETCH FIRST 10 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)