public virtual IQueryable <T> GetEntitiesForPaging <T>(int pageNumber, int pageSize, Expression <Func <T, string> > orderName, string sortOrder, Expression <Func <T, bool> > exp) where T : class { using (DbEntities db = new DbEntities()) { if (sortOrder == "asc") //升序排列 { return(db.Set <T>().Where(exp).OrderBy(orderName).Skip((pageNumber - 1) * pageSize).Take(pageSize)); } else { return(db.Set <T>().Where(exp).OrderByDescending(orderName).Skip((pageNumber - 1) * pageSize).Take(pageSize)); } } }
public virtual T GetEntity <T>(Expression <Func <T, bool> > exp) where T : class { using (DbEntities db = new DbEntities()) { return(db.Set <T>().Where(exp).SingleOrDefault()); } }
public virtual int GetEntitiesCount <T>(Expression <Func <T, bool> > exp) where T : class { using (DbEntities db = new DbEntities()) { return(db.Set <T>().Where(exp).Count()); } }
public virtual void Delete <T>(T entity, bool isSubmit) where T : class { if (isSubmit && _dbEntities == null) { using (DbEntities db = new DbEntities()) { var obj = db.Set <T>(); if (entity != null) { obj.Attach(entity); db.Entry(entity).State = System.Data.EntityState.Deleted; obj.Remove(entity); db.SaveChanges(); } } } else { _dbEntities.Set <T>().Attach(entity); _dbEntities.Entry(entity).State = System.Data.EntityState.Deleted; _dbEntities.Set <T>().Remove(entity); _dbEntities.SaveChanges(); } }
/// <summary> /// 根据条件获取数据实体集合 /// </summary> /// <typeparam name="T">实体类型</typeparam> /// <param name="exp">条件表达式</param> /// <param name="useBaseContext">是否使用类基础的context,以达到延迟加载的目的</param> /// <returns></returns> public virtual IQueryable <T> GetEntities <T>(Expression <Func <T, bool> > exp, bool useBaseContext = false) where T : class { if (useBaseContext) { return(_dbEntities.Set <T>().Where(exp)); } using (DbEntities db = new DbEntities()) { return(db.Set <T>().Where(exp)); } }
public virtual T Insert <T>(T entity, bool isSubmit) where T : class { if (isSubmit && _dbEntities == null) { using (DbEntities db = new DbEntities()) { var obj = db.Set <T>(); T result = obj.Add(entity); db.SaveChanges(); return(result); } } else { _dbEntities.Entry(entity); T result = _dbEntities.Set <T>().Add(entity); _dbEntities.SaveChanges(); return(result); } }