代码之家  ›  专栏  ›  技术社区  ›  H. Eberhardt

HQL在选择NHIBERNATE中返回DOUBLE值

  •  1
  • H. Eberhardt  · 技术社区  · 9 年前

    我有这个查询,它应该返回double(即数据库中的 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”以键入“Administrative.Models.products”。

    1 回复  |  直到 9 年前
        1
  •  0
  •   Community Mohan Dere    8 年前

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

    query.UniqueResult<decimal>()
    

    当你代表金钱时,你需要使用 decimal 相反 double 为了不失去准确性,请阅读 here .