Действительно ли возможно назвать хранимую процедуру, используя NHibernate, который возвращает пользовательский объект вместо объекта области?

У меня есть несколько хранимых процедур, которые не возвращают объекты области (т.е.; объекты, у которых есть соответствующее sql отображение стола в hbm файлах); но возвратите пользовательские объекты вместо этого.

Я хочу назвать эти хранимые процедуры, используя NHibernate и заполнить мои пользовательские объекты продукцией автоматически, вместо того, чтобы заполнить их вручную, как я сделал бы, если я использую SqlDataReader.

Пример должен высоко цениться.

BTW: Я использую отображение новой возможности nhibernate 3.2 кодом.

1
nl ja de
I' ve столкнулся с подобным вопросом: stackoverflow.com/questions/5883855/…. Но, у этого есть отображение hbm. Теперь, пытаясь сделать это в коде.
добавлено автор Baig, источник

1 ответы

Возможно, можно попробовать следующее (взятый от https://stackoverflow.com/a/10513319/1236044 )

It uses CreateSQLQuery. You may try replacing the select... with Exec MyStoredProc

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

public class YourDto
{
    public int YourDtoId { get; set; }
    public string YourDtoTitle { get; set; }
}

then

var result = yourNhSession
    .CreateSQLQuery("select yourColumn1 as YourDtoId, yourColumn2 as YourDtoTitle from YOUR_TABLE")
    .SetResultTransformer(Transformers.AliasToBean())
    .List();
5
добавлено
+1 спасибо за быстрый и точный ответ:)
добавлено автор Baig, источник