NHibernate QueryOver Group具有条件分组

时间:2013-07-12 18:46:29

标签: c# nhibernate group-by queryover

以下代码段显示按名称分组以查找每个名称的计数。

          .SelectList(list=> list
                .SelectGroup(t => t.Name).WithAlias(() => dto.Name)
                .SelectCount(t => t.Name).WithAlias(() => dto.Count)
                )
            .TransformUsing(Transformers.AliasToBean<DTO>())

它有效,但有些名称是空字符串而其他名称为空。

如何将null和空字符串组设为相同的计数?

像这样,

.SelectGroup(t => String.IsNullOrEmpty(t.Name)?"UNKNOWN":t.Name).WithAlias(() => dto.Name)

上述内容不起作用

渴望的SQL:

SELECT Name, count(IsNull(Name, 'UNKNOWN') ) as 'NameCount'
FROM Person 
GROUP BY Name

这会得到如下结果:

Bob     2
Tom     5
UNKNOWN 3

不进行空检查,结果就是:

Bob     2
Tom     5

分组中将忽略空值。这就是为什么我需要在NH查询语法中找到一种方法来指定空值的默认值

0 个答案:

没有答案