HQL-запрос, который возвращает столбец типа string
Как извлечь значение типа строки из одного столбца, используя 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
1 ответ
Решение
Вы возвращаете строковое представление запроса. Вам просто нужно выполнить запрос и вернуть его уникальный результат:
session.CreateQuery(queryString).SetInt32("Id", Id).UniqueResult();
(при условии, что имя метода такое же, как в версии Java).