/// <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);
     }
 }
Ejemplo n.º 2
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();
     }
 }
Ejemplo n.º 3
0
 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;
 }