createSQLQuery  该方法可以实现,需要AddEntity方法支援。谢谢!请问Nhibernate怎样实现多表查询?例如:
ISQLQuery query = session.CreateSQLQuery("select cs.* from cake c join CakeSize cs on cs.CakeId=c.Id")
.AddEntity("cs", typeof(CakeSize));
IList<CakeSize> cs = query.List<CakeSize>();怎样返回两个实例的数据,而不是单个实例?

解决方案 »

  1.   


    楼主,我也遇到相同的问题,但是用createSQLQuery  方法怎么不行,楼主能否帮我看下什么问题咯,谢谢!string strWhere = "";
                if (!string.IsNullOrEmpty(periodID))
                    strWhere = " and periodID='" + periodID + "' ";
                if (!string.IsNullOrEmpty(companyCode))
                    strWhere += " and A.companyCode='" + companyCode + "' ";
                if (!string.IsNullOrEmpty(caseName))
                    strWhere += " and caseName='" + caseName + "' ";            string strSql = "SELECT  0 u_RegisterID,0 u_RegisterPID,'' u_RegisterTime,'' u_ModifyTime,0 u_Validate,A.ID id, A.reportID, A.periodID, A.companyCode, A.unitCode, A.unitName, A.unitMax, A.unitMin, A.caseName, A.flag," +
                                      " B.companyName, C.reportPath, C.reportDate    FROM   T_Case_Caps A    INNER JOIN " +
                                      " dbo.T_CompanyCode B ON A.companyCode = B.companyCode INNER JOIN " +
                                     " dbo.T_ReportInfo C ON A.reportID = C.ID " +
                                     " WHERE 1=1 " + strWhere + " ORDER BY  A.ID";            //return this.Session.CreateQuery(strSql).List<Case_CapsExpand>();            return this.Session.CreateSQLQuery("strSql").AddEntity(typeof(Case_CapsExpand)).List<Case_CapsExpand>();
      

  2.   


     return this.Session.CreateSQLQuery("strSql")  这里 怎么能用引号吧这个Sql语句引起来呢?
      

  3.   

    这是Nhibernate的查询语句,拼接的sql语句列名称应当说要查询的表映射的实体类对应的字段,表明也是映射过来的实体类类名称