/// <summary> /// SQL分页 /// </summary> /// <typeparam name="T">实体</typeparam> /// <param name="utilityPager">分页类</param> /// <param name="querysql">SQL语句</param> /// <returns></returns> public IList <T> PagerList <T>(UtilityPager utilityPager, string querysql, List <NHParameter> parameters, string orderBy = "", string ascOrDesc = "", bool isDTO = false) where T : class { if (utilityPager == null) { utilityPager = new UtilityPager(); } string _querysql = querysql; if (!string.IsNullOrEmpty(orderBy) && !string.IsNullOrEmpty(ascOrDesc)) { _querysql = querysql + " order by " + orderBy + " " + ascOrDesc; } var queryList = ICreateSQLQuery(_querysql); if (parameters != null && parameters.Count > 0) { foreach (NHParameter para in parameters) { queryList.SetParameter(para.ParameterName, para.ParameterValue, para.DbType); } } if (!isDTO) { queryList.AddEntity(typeof(T)); } else { queryList.SetResultTransformer(Transformers.AliasToBean(typeof(T))); } if (!utilityPager.IsGetCount) { return(queryList.SetFirstResult(GetPageIndex(utilityPager)) .SetMaxResults(utilityPager.PageSize) .List <T>()); } int count = Convert.ToInt32(GetCustomSQLQueryUniqueResult <object>("select count(*) from (" + querysql + ") as countTable", parameters)); return(queryList.SetFirstResult(GetPageIndex(utilityPager, count)) .SetMaxResults(utilityPager.PageSize) .List <T>()); }