2013-05-07 7 views

risposta

25

suppongo si utilizza lo standard

Session.GetNamedQuery(.... 

invece, è possibile utilizzare

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

Questo consente di chiamare la stored procedure, ma ancora ottenere indietro un oggetto di dominio (o una lista di) senza bisogno di un file .hbm.xml.

Actually there's this post

3

Si dovrebbe avere una classe per il risultato di tornare insieme nel mio caso si tratta di classe 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; } 
    } 

chiamata stored procedure "GetMemberGameActivity" per ottenere la lista



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

+0

risposta valida, solo se si esporta in un elenco generico è necessario specificare la classe generica. per esempio nel mio caso il risultato è un IList quindi ho bisogno di modificare la risposta a: 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

Problemi correlati