public int Count(ISpecification <TEntity> spec) { NHibernateSpecification <TEntity> nhSpec = (NHibernateSpecification <TEntity>)spec; var cq = nhSpec.GetSession().Query <TEntity>(); if (nhSpec.CriteriaExpression != null) { cq = cq.Where(nhSpec.CriteriaExpression); } return(cq.Count()); }
public PagingResult <TEntity> FindPaging(ISpecification <TEntity> spec) { NHibernateSpecification <TEntity> nhSpec = (NHibernateSpecification <TEntity>)spec; var cq = nhSpec.GetSession().Query <TEntity>(); if (nhSpec.CriteriaExpression != null) { cq = cq.Where(nhSpec.CriteriaExpression); } PagingResult <TEntity> result = new PagingResult <TEntity>(cq.Count()); result.AddRange(nhSpec.Query.ToList()); return(result); }