hbm.xml ファイル マッピングを作成せずに、Fluent Nhibernate でストアド プロシージャをクエリする方法はありますか?
15019 次
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 に答える