如何使用 NHibernate(最好是 QueryOver 语法)来获取以下 SQL
SELECT this_.Name as_, count(IsNull(this_.Name , 'UNKNOWN') ) as NameCount
FROM...
如何使用 NHibernate(最好是 QueryOver 语法)来获取以下 SQL
SELECT this_.Name as_, count(IsNull(this_.Name , 'UNKNOWN') ) as NameCount
FROM...
NHibernates sql 方言不支持 IsNull,但 Coalesce 支持,并且对于两个参数来说是相同的。
你可以做
Projections.SqlFunction("Coalesce", NHibernateUtil.String,
Projections.Property("Name"), Projections.Constant("UNKNOWN"))
得到一个相当于 IsNull() 的投影。
在 ICriteria 中,NHibernate.Criterion.Restrictions.IsNull(PropertyName)
我认为您也可以在 QueryOver 中使用它 -
var qOver = QueryOver.Of<MyEntity>(() => meEntity);
qOver = qOver.Where(Restrictions.IsNull(PropertyName));