Просто хотел, чтобы все знали, как я это сделал, с помощью кода, который может помочь другим:
Когда я создаю свою SessionFactory, я просто добавляю пользовательскую функцию SQL в объект конфигурации:
Установка:
var configuration = new Configuration();
configuration.AddSqlFunction("stdev", new StandardSQLFunction("stdev", HibernateUtil.Double));
SessionFactory = configuration.Configure().BuildSessionFactory();
Usage:
Тогда в моем поставщике данных я теперь могу вызывать пользовательскую функцию:
ICriteria criteria = _session.CreateCriteria(typeof(ItemHistory));
criteria.SetProjection(Projections.SqlFunction("stdev", NHibernateUtil.Double, Projections.Property("Speed") ));
IList results = criteria.List();