При выполнении запросов, которые возвращают скалярные значения в NHibernate
Это будет работать!
var max = session.CreateSQLQuery(query).UniqueResult();
decimal s = max != null ? Decimal.Parse(max.ToString()) : -1;
Это вернет ноль !!!
decimal? s = session.CreateSQLQuery(query).UniqueResult() as decimal?;
Это не скомпилируется
Поскольку допускаются только ссылочные или допускаемые значения
decimal s = session.CreateSQLQuery(query).UniqueResult() as decimal;
TypeConversionException
Исключение выдается из NHibernate
decimal s = (decimal)session.CreateSQLQuery(query).UniqueResult();