Esempio n. 1
0
        /// <summary>
        /// Gets the <see cref="TEntity"/> queryable.
        /// </summary>
        /// <param name="pagingParameters">The paging parameters.</param>
        /// <param name="filter">The filter expression.</param>
        /// <param name="orderBy">The order by.</param>
        /// <param name="includeProperties">The include properties.</param>
        /// <returns>A query.</returns>
        protected virtual IQueryable <TEntity> GetQueryable(
            IPagingParameters pagingParameters,
            Expression <Func <TModel, bool> > filter = null,
            ISortingParameters orderBy = null,
            params string[] includeProperties)
        {
            // AsNoTracking - disable loading of all navigation properties automatically.
            IQueryable <TEntity> query = context.Set <TEntity>().AsNoTracking();

            // Filtering using Dynamic Linq.
            if (filter != null)
            {
                query = query.Where(DynamicExpressionHandler.GetDynamicQueryString(filter.Body));
            }

            // Include properties.
            if (includeProperties != null && includeProperties.Length > 0)
            {
                foreach (var item in includeProperties)
                {
                    query = query.Include(item);
                }
            }

            // Order by.
            if (orderBy != null && orderBy.Sorters.Count > 0)
            {
                foreach (var item in orderBy.Sorters)
                {
                    if (item.IsAscending)
                    {
                        query = query.OrderBy(item.OrderBy);
                    }
                    else
                    {
                        query = query.OrderBy(item.OrderBy + " descending");
                    }
                }
            }

            // Paging.
            if (pagingParameters != null)
            {
                query = query.Skip(pagingParameters.Skip);
                query = query.Take(pagingParameters.PageSize);
            }

            return(query);
        }
 public string GetUser(Expression <Func <User, bool> > filter)
 {
     //return Users.Where("(OwnerId = Guid(\"00000000-0000-0000-0000-000000000000\"))").FirstOrDefault();
     // return System.Linq.Dynamic.
     return(DynamicExpressionHandler.GetDynamicQueryString(filter.Body));
 }