Exemplo n.º 1
0
 /// <summary>
 /// Get entity by Lamda
 /// </summary>
 /// <param name="predicate">Lamda(p=>p.Id==Id)</param>
 /// <returns></returns>
 public virtual List <T> LoadListAll <TKey>(QueryableOrderEntry <T, TKey> orderQuery, Expression <Func <T, bool> > predicate = null)
 {
     if (orderQuery.OrderDirection == OrderDirection.DESC)
     {
         return(predicate != null?_dbContext.Set <T>().Where(predicate).OrderByDescending(orderQuery.Expression).AsNoTracking().ToList() : _dbContext.Set <T>().AsQueryable <T>().OrderByDescending(orderQuery.Expression).AsNoTracking().ToList());
     }
     else
     {
         return(predicate != null?_dbContext.Set <T>().Where(predicate).OrderBy(orderQuery.Expression).AsNoTracking().ToList() : _dbContext.Set <T>().AsQueryable <T>().OrderBy(orderQuery.Expression).AsNoTracking().ToList());
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Get entity by Lamda
 /// </summary>
 /// <param name="predicate">Lamda(p=>p.Id==Id)</param>
 /// <returns></returns>
 public virtual T Get <TKey>(Expression <Func <T, bool> > predicate, QueryableOrderEntry <T, TKey> orderQuery)
 {
     if (orderQuery.OrderDirection == OrderDirection.DESC)
     {
         return(_dbContext.Set <T>().AsNoTracking().OrderByDescending(orderQuery.Expression).FirstOrDefault(predicate));
     }
     else
     {
         return(_dbContext.Set <T>().AsNoTracking().OrderBy(orderQuery.Expression).FirstOrDefault(predicate));
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// paging by linq
        /// </summary>
        /// <typeparam name="TKey"></typeparam>
        /// <param name="whereQuery">condition</param>
        /// <param name="orderQuery">sorting</param>
        /// <param name="pageId">pageId,form 0</param>
        /// <param name="pageSizes">pageSize</param>
        ///   /// <param name="selector">select</param>
        /// <returns></returns>
        public virtual PagedynamicResult <T> GetLinqPage <TKey>(Expression <Func <T, bool> > whereQuery, QueryableOrderEntry <T, TKey> orderQuery, int pageId, int pageSizes)
        {
            pageId = pageId < 1 ? 1 : pageId - 1;
            List <T> data = new List <T>();

            _dbContext.Database.SetCommandTimeout(300);
            var query = _dbContext.Set <T>().Where(whereQuery);// repository.TableNoTracking.Where(whereQuery);
            int count = query.Count();

            if (orderQuery.OrderDirection == OrderDirection.DESC)
            {
                data = query.OrderByDescending(orderQuery.Expression)
                       .Skip(pageSizes * pageId)
                       .Take(pageSizes).ToList <T>();
            }
            else
            {
                data = query
                       .OrderBy(orderQuery.Expression)
                       .Skip(pageSizes * pageId)
                       .Take(pageSizes).ToList <T>();
            }

            return(new PagedynamicResult <T> {
                Data = data, ItemCount = count, PageSize = pageSizes, PageIndex = pageId + 1
            });
        }