Не отображенная таблица NHibernate - объект является многоколоночным типом - ToListResultTransformer
У меня есть NHibernate, выполняющий сырой SQL-запрос, который построен из базы данных. В программном обеспечении пользователь может выбрать таблицу и пару столбцов в определенном порядке. В моем программном обеспечении я использую эту информацию для создания SQL-запроса, который выбирает определенные столбцы из таблицы и объединяет столбцы в один столбец. Вот быстрый пример.
Пользователь определяет, что он хочет выбрать столбцы FirstName
унд SurName
из таблицы User
, Затем я строю это предложение выбора:
select (firstname || surname) as resultData from user
И теперь я пытаюсь использовать оператор select:
var list = session.CreateSQLQuery(sqlQuery)
.SetResultTransformer(new NHibernate.Transform.ToListResultTransformer())
.List();
Но моя проблема в том, что теперь я GenericADOException
с сообщением
объект является многоколоночным типом
Я не нашел много в Интернете для моей проблемы. Только поток, который выполняет ту же задачу без этой ошибки: сопоставление SQL-запроса NHibernate для результата с одним столбцом
1 ответ
Да, я нашел свою проблему. Это было не проблема с кодом, а не с базой данных.
Там столбцы могли иметь null
ценности, и NHibernate это не понравилось.
FirstName | Surname
-------------------
Sam | Smith
| Archer
Michael | Brown
Я решил проблему с настройкой sql satement. Я использую сейчас coalesce
функция.
Новый SQL-оператор:
select (coalesce(firstname, '') || coalesce(surname, '')) as resultData from user