/// <summary> /// 普通查询 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="hql">查询语句</param> /// <returns></returns> public static List <T> GetEntitiesByHQL <T>(string hql) { BasicDataManipulation baseData = new BasicDataManipulation(); ISession Session = baseData.GetSession(); List <T> list = new List <T>(); if (Session == null) { throw new Exception("打开数据库连接失败!"); } try { NHibernate.IQuery query = Session.CreateQuery(hql); list = query.List <T>().ToList(); return(list); } catch (Exception ex) { LogAPI.Debug(ex); return(list); } finally { if (Session != null) { Session.Dispose(); Session = null; } } }
/// <summary> /// 分页查询 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="hql">查询语句</param> /// <param name="skip">页数</param> /// <param name="take">每页显示条数</param> /// <param name="count">总数</param> /// <returns></returns> public static List <T> GetEntitiesByHQL <T>(string hql, int skip, int take, out int count) { BasicDataManipulation baseData = new BasicDataManipulation(); ISession Session = baseData.GetSession(); List <T> list = new List <T>(); if (Session == null) { throw new Exception("打开数据库连接失败!"); } try { NHibernate.IQuery query1 = Session.CreateQuery(hql); string hqlcount = ""; int fromIndex = hql.IndexOf("from"); int toIndex = hql.IndexOf("order"); int len = 0; if (toIndex == -1) { hqlcount = "select count(*) " + hql.Substring(fromIndex); } else { len = toIndex - fromIndex; hqlcount = "select count(*) " + hql.Substring(fromIndex, len); } NHibernate.IQuery querycount = Session.CreateQuery(hqlcount); try { count = int.Parse(querycount.UniqueResult().ToString()); } catch { count = 0; } NHibernate.IQuery query = query1.SetFirstResult(skip).SetMaxResults(take); list = query.List <T>().ToList(); return(list); } catch (Exception ex) { count = 0; LogAPI.Debug(ex); return(list); } finally { if (Session != null) { Session.Dispose(); Session = null; } } }