Bir hbm.xml dosya eşlemesi oluşturmadan Fluent Nhibernate'de saklı yordamı sorgulamanın bir yolu var mı?Bir hbm.xml eşlemesi olmadan saklı yordamı sorgulamak için Fluent NHibernate
18
A
cevap
25
Sana Bu saklı yordam diyoruz ama hala geri etki alanı nesnesini almak (veya liste) olmadan sağlar
var result = Session.CreateSQLQuery("exec MyStoredProc :pUserId, :pIsLocked")
.AddEntity(typeof(MyDomainObject))
.SetParameter("pUserId", userId)
.SetParameter("pIsLocked", isLocked)
.List<MyDomainObject>();
kullanabilirsiniz, bunun yerine standart
Session.GetNamedQuery(....
kullanmak farz bir .hbm.xml dosyasına ihtiyaç var.
3
Sen benim durumumda sonuç kümesini döndürmek için bir sınıf olması gerekir o GameActivity sınıf
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; }
}
listesine
var result = session.CreateSQLQuery("exec GetMemberGameActivity :mToken, :StartDate, :EndDate")
.SetResultTransformer(Transformers.AliasToBean())
.SetParameter("mToken", token)
.SetParameter("StartDate", startDate)
.SetParameter("EndDate", endDate)
.List().ToList();
Geçerli cevap almak için saklı yordam "GetMemberGameActivity" Arayan var, Yalnızca genel bir listeye dışa aktardığınızda genel sınıfı belirtmeniz gerekir. örneğin benim durumumda sonuç bir IList ise cevabı şu şekilde değiştirmem gerekiyor: var result = repository.Session.CreateSQLQuery ("exec USP_SA_Get1098TDataForTaxYear: TaskYear,: CampusId") .SetResultTransformer (Transformers.AliasToBean ()) .SetParameter ("TaskYear", filter.Year) .SetParameter ("CampusId", filter.CampusId) .List () .ToList(); –
freedeveloper