Подтвердить что ты не робот

Fluent NHibernate для запроса хранимой процедуры без отображения hbm.xml

Есть ли способ запросить хранимую процедуру в Fluent Nhibernate без создания сопоставления файлов hbm.xml?

4b9b3361

Ответ 1

Я предполагаю, что вы используете стандартный

Session.GetNamedQuery(....

вместо этого вы можете использовать

var result = Session.CreateSQLQuery("exec MyStoredProc :pUserId, :pIsLocked")
                    .AddEntity(typeof(MyDomainObject))
                    .SetParameter("pUserId", userId)
                    .SetParameter("pIsLocked", isLocked)
                    .List<MyDomainObject>();

Это позволяет вам вызвать сохраненный процесс, но все равно вернуть объект домена (или список), не требуя файла .hbm.xml.

На самом деле это сообщение

Ответ 2

У вас должен быть класс для возврата набора результатов в моем случае класс GameActivity



    public class GameActivity
    {
            public virtual DateTime Date { get; set; }
            public virtual string GameRoundId { get; set; }
            public virtual int GameProvider { get; set; }
            public virtual string GameName { get; set; }
            public virtual decimal RealBet { get; set; }
            public virtual decimal RealWin { get; set; }
            public virtual decimal BonusBet { get; set; }
            public virtual decimal BonusWin { get; set; }
            public virtual decimal BonusContribution { get; set; }
            public virtual int IsRoundCompleted { get; set; }
            public virtual int IsRoundCancelled { get; set; }
    }

Вызов хранимой процедуры "GetMemberGameActivity" для получения списка



    var result = session.CreateSQLQuery("exec GetMemberGameActivity :mToken, :StartDate, :EndDate")
                        .SetResultTransformer(Transformers.AliasToBean())
                        .SetParameter("mToken", token)
                        .SetParameter("StartDate", startDate)
                        .SetParameter("EndDate", endDate)
                        .List().ToList();