/// <summary> /// 获得分页读取的总数量 /// </summary> /// <param name="cri"></param> /// <returns></returns> protected int GetAllCount(NHibernate.ICriteria cri) { System.Collections.IList list = cri .SetProjection(NHibernate.Criterion.Projections.RowCount()) .List(); if (list.Count > 0) { return((int)list[0]); } else { return(0); } }
/// <summary> /// Gets the distict list. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="distictPropertys">The distict propertys.</param> /// <param name="expressions">The expressions.</param> /// <param name="orders">The orders.</param> /// <returns></returns> public IList <object[]> GetDistinctList <T>(string[] distictPropertys, Hib.Criterion.ICriterion[] expressions, params Hib.Criterion.Order[] orders) { try { OpenConnect(); Hib.ICriteria criteria = _Session.CreateCriteria(typeof(T)); if (distictPropertys != null) { ProjectionList projects = Projections.ProjectionList(); foreach (string p in distictPropertys) { projects.Add(Projections.Property(p)); } criteria.SetProjection(Projections.Distinct(projects)); } else { throw new Exception("the disctinct property can't be null."); } if (expressions != null) { foreach (Hib.Criterion.ICriterion exp in expressions) { criteria.Add(exp); } } foreach (Hib.Criterion.Order o in orders) { criteria.AddOrder(o); } return(criteria.List <object[]>()); } catch (Exception ex) { LogExepttion(ex); throw; } finally { Disconnect(); } }
private int GetCount(ISearchExpression searchExpression, NHibernate.ISession session) { NHibernate.ICriteria criteria2 = CreateCriteria(session, searchExpression, null, ref m_hasCollection); criteria2.SetProjection(NHibernate.Criterion.Projections.RowCount()); return((int)criteria2.UniqueResult()); // criteria2.FutureValue<int>().Value; }