pre { /*控制代码不换行*/ white-space: pre; word-wrap: normal; }

使用EF框架的增删改查和分页的公共类

public class BaseRepository<T> where T : class 
    
        //实例化EF框架 
        DataModelContainer db = new DataModelContainer(); 
   
        //添加 
        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; 
            return db.SaveChanges() > 0; 
        
   
        //删除 
        public bool DeleteEntities(T entity) 
        
            db.Set<T>().Attach(entity); 
            db.Entry<T>(entity).State = EntityState.Deleted; 
            return db.SaveChanges() > 0; 
        
   
        //查询 
        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(); 
        
    }
posted @ 2013-05-28 11:45  monkey's  阅读(380)  评论(0)    收藏  举报