NHibernate, как прочитать метаданные результата NamedQuery? - PullRequest
0 голосов
/ 07 июля 2010

У меня есть sql-запрос определения в моем файле отображения nhibernate, который вызывает хранимую процедуру для выбора некоторых записей.

 <sql-query name="sp_MYSP">
     exec MYDBSP :param1, :param2, :param3
 </sql-query>

В коде я вызываю именованный запрос следующим образом:

  IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
  myQuery.SetString("param1", p1);
  myQuery.SetString("param2", p2);
  myQuery.SetString("param3", p3);

для получения результатов я использую метод "List"

   myQuery.List();

, но таким образом он возвращает список объектов без какой-либо метаинформации ... например, columname.Я бы прочитал результат, как данные, чтобы получить значение определенного свойства ... как я могу это сделать?

Выбранные записи не представляют какой-либо сущности моего модального домена, а только набор данных, используемых дляконкретный процесс.

Ответы [ 2 ]

0 голосов
/ 08 июля 2010

Вы правы.

Однако я нашел другое решение из этой статьи, опубликованной на codeprojet: http://www.codeproject.com/KB/tips/Execute_SQL_Nhibernate.aspx

Подходит для моего сценария.

0 голосов
/ 08 июля 2010

Если вы не сопоставляете этот запрос с сущностью и ожидаете получения данных, зачем вообще использовать NHibernate?

Вы все равно можете получить соединение от NHibernate, если вы фактически используете его для остальных данных(session.Connection) и создайте сырую команду ADO.NET оттуда.

...