2013-05-07 16 views

Odpowiedz

25

Zakładam użyć standardowego

Session.GetNamedQuery(.... 

zamiast tego można użyć

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

To pozwala wywołać przechowywanej proc, ale wciąż wrócić obiektu domeny (lub lista) bez wymagający pliku .hbm.xml.

Actually there's this post

3

powinny mieć klasę dla powracających wynik ustawić w moim przypadku jest to klasa 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; } 
    } 

Wywołanie procedury przechowywanej "GetMemberGameActivity", aby otrzymać listę



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

+0

Ważne odpowiedź tylko jeśli eksportujesz do ogólnej listy, musisz podać klasę ogólną. na przykład w moim przypadku wynikiem jest IList , a następnie muszę zmodyfikować odpowiedź na: var result = repository.Session.CreateSQLQuery ("exec USP_SA_Get1098TDataForTaxYear: TaskYear,: CampusId") .SetResultTransformer (Transformers.AliasToBean ()) .SetParameter ("TaskYear", filter.Year) .SetParameter ("CampusId", filter.CampusId) .Lista () .ToList(); – freedeveloper

Powiązane problemy