EF6 增删改查

来源:互联网 发布:java序列化常用的地方 编辑:程序博客网 时间:2024/06/08 11:31
 private DbContext _dbContext;        public DbContext CurrentContext        {            get            {                if (_dbContext == null)                {                    _dbContext = new TransitContext();                }                return _dbContext;            }        }        /// <summary>        /// 执行Sql查询        /// </summary>        /// <typeparam name="TEntity"></typeparam>        /// <param name="strSql"></param>        /// <param name="paramObjects"></param>        /// <returns></returns>        public List<TEntity> SqlQuery<TEntity>(string strSql, params Object[] paramObjects) where TEntity : class        {            if (paramObjects == null)            {                paramObjects = new object[0];            }            return this.CurrentContext.Database.SqlQuery<TEntity>(strSql, paramObjects).ToList();        }        /// <summary>        /// 查询        /// </summary>        /// <param name="predicate"></param>        /// <returns></returns>        public IQueryable<TEntity> Search<TEntity>(Expression<Func<TEntity, bool>> predicate) where TEntity : class        {            return CurrentContext.Set<TEntity>().Where(predicate);        }        /// <summary>        /// 查询全部        /// </summary>        /// <returns></returns>        public IQueryable<TEntity> FindAll<TEntity>() where TEntity : class        {            return CurrentContext.Set<TEntity>();        }        /// <summary>        /// 插入        /// </summary>        /// <param name="entity"></param>        /// <param name="isSave"></param>        public void Insert<TEntity>(TEntity entity, bool isSave = true) where TEntity : class        {            CurrentContext.Set<TEntity>().Add(entity);            if (isSave)            {                CurrentContext.SaveChanges();            }        }        /// <summary>        /// 批量插入        /// </summary>        /// <param name="entitys"></param>        /// <param name="isSave"></param>        public void Insert<TEntity>(List<TEntity> entitys, bool isSave = true) where TEntity : class        {            foreach (var entity in entitys)            {                CurrentContext.Set<TEntity>().Add(entity);            }            if (isSave)            {                CurrentContext.SaveChanges();            }        }        /// <summary>        /// 更新        /// </summary>        /// <param name="entity"></param>        /// <param name="isSave"></param>        public void Update<TEntity>(TEntity entity, bool isSave = true) where TEntity : class        {            var local = FindLocal(CurrentContext, entity);            if (local == null)            {                throw new Exception("要更新的实体不存在");            }            ObjectMapper.CopyProperties(entity, local);            if (isSave)            {                CurrentContext.SaveChanges();            }        }        /// <summary>        /// 批量更新        /// </summary>        /// <param name="entities"></param>        /// <param name="isSave"></param>        public void Update<TEntity>(List<TEntity> entities, bool isSave = true) where TEntity : class        {            foreach (var entity in entities)            {                var local = FindLocal(CurrentContext, entity);                if (local == null)                {                    throw new Exception("要更新的实体不存在");                }                ObjectMapper.CopyProperties(entity, local);            }            if (isSave)            {                CurrentContext.SaveChanges();            }        }        /// <summary>        /// 删除        /// </summary>        /// <param name="entity"></param>        /// <param name="isSave"></param>        public void Delete<TEntity>(TEntity entity, bool isSave = true) where TEntity : class        {            var local = FindLocal(CurrentContext, entity);            if (local == null)            {                throw new Exception("要删除的实体不存在");            }            CurrentContext.Entry<TEntity>(local).State = EntityState.Deleted;            if (isSave)            {                CurrentContext.SaveChanges();            }        }

0 0