/// <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)); }