首页 > 其他 > 详细

EF泛型查询

时间:2020-07-21 15:21:16      阅读:67      评论:0      收藏:0      [点我收藏+]

EF泛型查询

参考地址

栗子

后期可优化

    public class EFHelper
    {
        //依赖注入
        readonly DBContext _db;
        public EFHelper(DBContext dbContext)
        {
            _db = dbContext;
        }


        public virtual IQueryable<TEntity> Quyery<TEntity>() where TEntity : class
        {
            return _db.Set<TEntity>();
        }


        /// <summary>
        /// 查询单个实体
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="pre"></param>
        /// <returns></returns>
        public virtual IQueryable<TEntity> Quyery<TEntity>(Expression<Func<TEntity, bool>> pre) where TEntity : class
        {

            return _db.Set<TEntity>().Where(pre);
        }


        /// <summary>
        /// 根据ID查询单个实体
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="pre"></param>
        /// <returns></returns>
        public virtual TEntity QuyeryByID<TEntity>(int id) where TEntity : BaseEntity
        {
            return _db.Set<TEntity>().Where(a => a.ID.Equals(id)).First();
        }

        /// <summary>
        /// 添加实体
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="entity"></param>
        public virtual void Add<TEntity>(TEntity entity) where TEntity : BaseEntity
        {
            _db.Set<TEntity>().Add(entity);
        }

        /// <summary>
        /// 批量添加实体
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="listEntity"></param>
        public virtual void Add<TEntity>(List<TEntity> listEntity) where TEntity : BaseEntity
        {
            _db.Set<TEntity>().AddRange(listEntity);
        }

     
        /// <summary>
        /// 根据传入条件删除数据
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="pre"></param>
        public virtual void Delete<TEntity>(Expression<Func<TEntity, bool>> pre) where TEntity : class
        {
            var dele = this.Quyery(pre).FirstOrDefault();
            if(dele!=null)
                this.Delete(dele);
        }
        /// <summary>
        /// 根据实体标记删除
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="entity"></param>
        public virtual void Delete<TEntity>(TEntity entity) where TEntity : class
        {
            _db.Set<TEntity>().Remove(entity);
        }
        /// <summary>
        /// 批量标记删除
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <param name="listEntity"></param>
        public virtual void Delete<TEntity>(List<TEntity> listEntity) where TEntity : BaseEntity
        {
            _db.Set<TEntity>().RemoveRange(listEntity);
        }

       

        /// <summary>
        /// 保存数据到数据库
        /// </summary>
        public virtual void SaveChanges()
        {
            _db.SaveChanges();
            _db.Dispose();
        }
    }
}

EF泛型查询

原文:https://www.cnblogs.com/Alex-Mercer/p/13354480.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!