码迷,mamicode.com
首页 > 其他好文 > 详细

Entity Framework 第六篇 分页查询

时间:2016-06-14 15:39:10      阅读:422      评论:0      收藏:0      [点我收藏+]

标签:

目前分页支持单表

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

 

Entity Framework 第六篇 分页查询

标签:

原文地址:http://www.cnblogs.com/njcxwz/p/5584081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!