NHibernate поддерживает только чтение результатов чтения данных.
Вы должны создать строку запроса как:
string sql = string.Format(
@"select MAX(Cost) from item_costings
where Item_ID = {0}
and {1} >= Qty1 and {1} <= Qty2",
itemId, quantity);
И затем вы выполняете это с:
string mystring = session
.CreateSQLQuery(sql)
.UniqueResult<decimal>()
.ToString();
В любом случае, вы здесь вообще не используете функциональность NHibernate, вы просто излишне оборачиваете необработанный ADO.NET.
Почему бы не определить объектную модель и не запросить ее с помощью Criteria, HQL или Linq?