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 WHERE Id=:Id から名前を選択

4

1 に答える 1

1

クエリの文字列表現を返しています。クエリを実行して、その一意の結果を返すだけです。

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

(メソッド名は Java 版と同じとする)。

于 2012-06-25T13:59:09.973 に答える