Как получить статистическую функцию NHibernate sum (), чтобы вернуть десятичную? - PullRequest
3 голосов
/ 07 апреля 2009

Я не могу заставить sum () вернуть десятичную дробь, и она всегда возвращает int64, усекающую десятичные дроби. Я гуглил целый день, но до сих пор не могу найти настоящую работу. У меня есть таблица БД под названием ProductPurchase с

QtyPurchased (целое) а также Колонки UnitPurchasePrice (money),

они сопоставлены с объектом POCO C # с помощью NHibernate, где QtyPurchase - это int, а UnitPurchasePrice - это десятичное свойство.

У меня следующий HQL-запрос, по которому я хочу получить общую сумму покупки за данный день:

выберите сумму (detail.QtyPurchased * detail.UnitPurchasePrice) от Domain.Entities.ProductPurchase AS подробно где datediff ("день", detail.PurchaseDate,: trading_date) = 0

Теперь, по какой-либо причине, query.UniqueResult всегда возвращает целое число Int64, усекающее десятичные дроби, тогда как сгенерированный SQL, очевидно, возвращает правильное число с десятичными. Может кто-нибудь пролить свет на то, как заставить это вернуть десятичную?

Я заметил, что если я использую SQL (т. Е. CreateSqlQuery), я могу вернуть десятичное число. Это ошибка в Nhibernate?

Спасибо, куча

Стивен Куо

1 Ответ

2 голосов
/ 07 апреля 2009

Инвертирование порядка факторов сделало это для меня: (цена * кол-во) вместо (кол-во * цена).

Я полагаю, что это должна быть проверка только первого типа параметра, пожалуйста, заполните JIRA , если этот обходной путь сработал для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...