HQL Query返回string类型的列

时间:2012-06-25 13:48:59

标签: c#-4.0 hql nhibernate-criteria

如何使用HQL检索单个列的string类型值。 我尝试了以下方法,但没有工作。

    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)
            }
        }
    }

预期输出为:

  

NEWYORK

实际输出是:

  

选择姓名FROM FNHHelper.Entites.Cities WHERE Id =:Id

1 个答案:

答案 0 :(得分:1)

您将返回查询的String表示形式。您只需执行查询,并返回其唯一结果:

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

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