HQL 在选定的 NHIBERNATE 中返回双精度值

本文关键字:返回 双精度 NHIBERNATE HQL | 更新日期: 2023-09-27 18:32:35

我有这个查询,它应该返回双精度(即在数据库中为 Decimal(10,2)):

public products SearchPrice(string nmproduct)
        {
            string hql = "select x.custo from products x where x.nmproduct = ?";
            IQuery query = session.CreateQuery(hql);
            query.SetParameter(0, nmproduct);
            return query.UniqueResult<products>();
        }

我想在数据库中获取价格。

例外情况是:

无法将类型为"System.Decimal"的对象强制转换为类型"管理.模型.产品"。

HQL 在选定的 NHIBERNATE 中返回双精度值

您要将十进制值强制转换为实体,您需要使用:

query.UniqueResult<decimal>()

当你代表金钱时,你需要使用decimal而不是double以免失去准确性,请阅读这里。