20

hbm.xml ファイル マッピングを作成せずに、Fluent Nhibernate でストアド プロシージャをクエリする方法はありますか?

4

3 に答える 3

28

私はあなたが標準を使用していると仮定します

Session.GetNamedQuery(....

代わりに、使用できます

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

これにより、ストアド プロシージャを呼び出すことができますが、.hbm.xml ファイルを必要とせずにドメイン オブジェクト (またはそのリスト) を取得できます。

実はこんな記事が

于 2013-07-15T09:02:58.073 に答える
5

私の場合、結果セットを返すためのクラスが必要です。それは 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();

于 2014-12-08T15:34:31.813 に答える