コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }