0

如何使用 HQL 检索字符串类型的单个列的值。我尝试了以下方式,但无法正常工作。

    public virtual string GetCityById(int Id)
    {
        using (var session = sessionFactory.OpenSession())
        {
            using (var transaction = session.BeginTransaction())
            {
                var queryString = string.Format("SELECT C.CityName FROM {0} AS C WHERE Id=:Id", typeof(T));
                return session.CreateQuery(queryString).SetInt32("Id", Id).ToString(); <--Also tried with .SetParameter("Id",Id)
            }
        }
    }

预期输出为:

纽约

实际输出为:

从 FNHHelper.Entites.Cities 中选择名称,其中 Id=:Id

4

1 回答 1

1

您正在返回查询的字符串表示形式。您只需要执行查询,并返回其唯一的结果:

session.CreateQuery(queryString).SetInt32("Id", Id).UniqueResult();

(假设方法名称与 Java 版本中的相同)。

于 2012-06-25T13:59:09.973 回答