目前分页支持单表
public IList<TEntity> GetPaged<TEntity>(out int total, Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, int index = 1, int size = 20) where TEntity : class { int skipCount = (index - 1) * size; var _reset = Get(filter, orderBy); total = _reset.Count(); _reset = skipCount > 0 ? _reset.Skip(skipCount).Take(size) : _reset.Take(size); return _reset.ToList(); } public IQueryable<TEntity> Get<TEntity>(Expression<Func<TEntity, bool>> filter = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null) where TEntity : class { IQueryable<TEntity> query = dbContext.Set<TEntity>(); if (filter != null) { query = query.Where(filter); } if (orderBy != null) { return orderBy(query).AsQueryable(); } else { return query.AsQueryable(); } }
使用
int count; var a = respository.GetPaged<S_Users>(out count, m => m.LoginName.Contains("a"), q => q.OrderBy(m => m.LastDate),1, 20);
是不是很方便?
如何多个排序条件?
var a = respository.GetPaged<S_Users>(out count, m => m.LoginName.Contains("a"), q => q.OrderBy(m => m.LastDate).ThenByDescending(m=>m.LoginNum),1, 20);
时间: 2025-01-18 05:08:50