2009-04-07 2 views
3

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

QtyPurchased (INT) и UnitPurchasePrice (деньги) колонн,

эти отображенных на объект C# POCO с использованием NHibernate, где QtyPurchase является ИНТ и UnitPurchasePrice является десятичное свойство.

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

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

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

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

Благодаря осыпает

Стивен Kuo

ответ

2

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

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

+0

Удивительный, это сработало !!! Большое вам спасибо Nhibernate Legend. Это была такая проблема с волосами, и теперь я могу написать правильный HQL. Еще раз спасибо. – 2009-04-07 23:40:11

+0

Просто опубликовано на JIRA, http://nhjira.koah.net/browse/NH-1734 Проголосуйте за него. Спасибо. – 2009-04-08 00:00:28

+0

Спасибо большое! У меня такая же проблема с orderrow.Amount * product.Price. Я перевернул свойства и работал. Очень позор, что наиболее часто используемый продукт, такой как NHibernate, имеет эти недостатки/ошибки в настоящее время. –

Смежные вопросы