NHIBERNATE 执行SQL 绑定到指定类

 public IList<ReportOfReason> GetReasonReport()
        {
            using (ISession session = nhibernateHelper.OpenSession())
            {
                    ISQLQuery query = session.CreateSQLQuery(@"select count(aa.form_id) Count,dd.
                                        reason_id ReasonId, dd.reason_desc ReasonDesc from (
                                        select  a.form_id  ,max(b.operation_id) operation_id,max(b.OPERATE_TIME) OPERATE_TIME  
                                        from out_form_t a left join dbo.OUT_OPERATION_T b
                                        on a.form_id=b.form_id
                                        join dbo.OUT_OPREATION_REASON_T c
                                        join dbo.OUT_REASON_T d on c.reason_id=d.reason_id
                                        on c.OPERATION_ID=b.OPERATION_ID
                                        WHERE a.status_id in('CONFIRM','REJECT','REVOKING')
                                        group by a.form_id    
                                    ) as aa join dbo.OUT_OPREATION_REASON_T cc on cc.operation_id=aa.operation_id
                                      join dbo.OUT_REASON_T dd on cc.reason_id=dd.reason_id
                                    group by dd.reason_id,dd.reason_desc")
                                                                         .AddScalar("ReasonId", NHibernateUtil.Int16)
                                                                         .AddScalar("ReasonDesc", NHibernateUtil.String)
                                                                         .AddScalar("Count", NHibernateUtil.Int32);
                IList<ReportOfReason> cs = query.SetResultTransformer(Transformers.AliasToBean(typeof(ReportOfReason))).List<ReportOfReason>();
                return cs;
            }
        }

posted @ 2014-07-03 12:45  刘淑玲  阅读(176)  评论(0)    收藏  举报