QueryableExtensions.cs 724 B

12345678910111213141516171819202122
  1. using System;
  2. using System.Linq;
  3. using VCommon.VApplication.Dto;
  4. using VCommon.VEntity;
  5. namespace VCommon.VApplication.Linq.Expressions
  6. {
  7. public static class QueryableExtensions
  8. {
  9. public static IQueryable<T> PageBy<T>(this IQueryable<T> queryable, IPageRequest input)
  10. {
  11. return queryable.Skip(input.Skip).Take(input.Take);
  12. }
  13. public static IQueryable<T> OrderByCreateTimeDescAndPageBy<T>(this IQueryable<T> queryable, IPageRequest input) where T : IHaveCreationTime
  14. {
  15. return queryable
  16. .OrderByDescending(ExpressionHelper.Property<T, DateTime>(nameof(IHaveCreationTime.CreationTime)))
  17. .PageBy(input);
  18. }
  19. }
  20. }