启智网 — 中国专业的个人博客平台

ASP.NET MVC增删查改

作者:huhaida 2014-11-06 14:23 浏览:1720 收藏此文

基本用法如下

 public partial class BaseRepository<T> where T : class
    {

        //EF上下文的实例保证,线程内唯一
        //实例化EF框架
        //DataModelContainer db = new DataModelContainer();

        //获取的实当前线程内部的上下文实例,而且保证了线程内上下文实例唯一
        private DbContext db = EFContextFactory.GetCurrentDbContext();

        //添加
        public T AddEntities(T entity)
        {
            db.Entry<T>(entity).State = EntityState.Added;
            //db.SaveChanges();
            return entity;
        }

        //修改
        public bool UpdateEntities(T entity)
        {
            db.Set<T>().Attach(entity);
            db.Entry<T>(entity).State = EntityState.Modified;
            //db.Entry<T>(entity).State= EntityState.Unchanged;
            //return db.SaveChanges() > 0;
            return true;
        }
        
        //修改
        public bool DeleteEntities(T entity)
        {
            db.Set<T>().Attach(entity);
            db.Entry<T>(entity).State = EntityState.Deleted;
            //return db.SaveChanges() > 0;
            return true;
        }

        //查询
        public IQueryable<T> LoadEntities(Func<T, bool> wherelambda)
        {
            return db.Set<T>().Where<T>(wherelambda).AsQueryable();
        }

        //分页
        public IQueryable<T> LoadPagerEntities<S>(int pageSize, int pageIndex, out int total,
            Func<T, bool> whereLambda, bool isAsc, Func<T, S> orderByLambda)
        {
            var tempData = db.Set<T>().Where<T>(whereLambda);

            total = tempData.Count();

            //排序获取当前页的数据
            if (isAsc)
            {
                tempData = tempData.OrderBy<T, S>(orderByLambda).
                      Skip<T>(pageSize * (pageIndex - 1)).
                      Take<T>(pageSize).AsQueryable();
            }
            else
            {
                tempData = tempData.OrderByDescending<T, S>(orderByLambda).
                     Skip<T>(pageSize * (pageIndex - 1)).
                     Take<T>(pageSize).AsQueryable();
            }
            return tempData.AsQueryable();
        }

    }

本文为作者原创博客,允许转载,转载时请务必以超链接形式标明文章 原始出处、作者信息。否则将追究其法律责任。http://www.7qizhi.com/blog-22.html
评论列表 (1)
niuyongjie [1楼] niuyongjie 2015-04-09 17:40:28
不错不错,很实用啊!

用户登录
还没有账号10秒注册

启智网

记住密码

用第三方帐号直接登录

顶部 微信二维码 底部
微信-个人博客平台

扫描二维码用手机看精彩博客