public virtual PagedList <T> GetAll( Expression <Func <T, bool> > predicate, SortExpression <T>[] sortExpressions, IEnumerable <string> searchColumns, string searcValue, int startIndex = 1, int itemsCount = 10, bool paging = true) { IEnumerable <T> items = null; int pageCount = default(int); // extract the dynamic sql query and parameters from predicate QueryResult result = DynamicQuery.GetDynamicPagedQuery <T>(this.tableName, predicate, sortExpressions, searchColumns, searcValue, startIndex, itemsCount, paging); QueryResult countResult = DynamicQuery.GetDynamicQuery <T>(this.tableName, predicate, countQuery: true); using (DbConnection cn = this.Connection) { cn.Open(); items = cn.Query <T>(result.Sql, (object)result.Param); pageCount = cn.Query <int>(countResult.Sql, (object)result.Param).SingleOrDefault(); } return(new PagedList <T>(items, startIndex, pageCount, itemsCount)); }
public virtual IEnumerable <TOut> ExecViewResult <TOut>(string procedureName, Expression <Func <TOut, bool> > predicate) { IEnumerable <TOut> items = null; QueryResult result = DynamicQuery.GetDynamicQuery <TOut>(procedureName, predicate); using (DbConnection cn = this.Connection) { cn.Open(); items = cn.Query <TOut>(result.Sql, (object)result.Param); } return(items); }
public virtual IEnumerable <T> Find(Expression <Func <T, bool> > predicate) { IEnumerable <T> items = null; if (items == null || items.Count() == 0) { // extract the dynamic sql query and parameters from predicate QueryResult result = DynamicQuery.GetDynamicQuery <T>(this.tableName, predicate); using (DbConnection cn = this.Connection) { cn.Open(); items = cn.Query <T>(result.Sql, (object)result.Param); } } if (items != null && items.Count() > 0) { items = items.Where(predicate.Compile()); } return(items); }