После небольшой игры с API, это будет сделано:
_session.QueryOver<MyObject>()
.Select(Projections.RowCount())
.FutureValue<int>()
.Value
Если вы не хотите возвращать его как будущее, вы можете просто получить SingleOrDefault<int>()
вместо этого.
Вы можете проверить, является ли тип обнуляемым, выполнив: if (typeof (T) .Equals (typeof (Nullable <>)), я верю, а затем приступлю к обработке этого специально. Если вы можете каким-либо образом вызвать метод GetValueOrDefault () , это сработает, или программная сборка создаст значение сравнения того же типа, может быть.
HTH.