Вы можете написать статью Where
так:
.Where(Restrictions.On<ClassType>(obj => obj.Col1).IsNull ||
Restrictions.On<ClassType>(obj => obj.Col1).IsLike(@""))
В качестве альтернативы, если вы делаете это на несколько запросов, вы должны рассмотреть вопрос о создании расширения запроса:
public static class QueryExtention {
public static IQueryOver<E, F> WhereStringIsNullOrEmpty<E, F>(this IQueryOver<E, F> query, Expression<Func<E, object>> expression) {
var property = Projections.Property(expression);
var criteria = Restrictions.Or(Restrictions.IsNull(property),
Restrictions.Eq(property, string.Empty));
return query.Where(criteria);
}
}
Тогда вы должны быть в состоянии создать что-то вроде:
.QueryOver<ClassType>()
.WhereStringIsNullOrEmpty(obj => obj.Col1)
Я этого никогда не видел. Какую версию NHibernate вы используете? Вы уверены, что код такой? – xanatos