zoukankan      html  css  js  c++  java
  • EF泛型查询

    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();
            }
        }
    }
    
  • 相关阅读:
    Java日期计算之Joda-Time
    JAVABEAN EJB POJO区别
    Android 知识体系学习路线
    Linux学习路线(尚观)
    嵌入式学习课程实战(尚观)
    嵌入式学习课程体系(尚观)
    嵌入式学习路线尚观
    C/C++的培训路线(达内)
    部分C/C++书籍
    基本路线
  • 原文地址:https://www.cnblogs.com/Alex-Mercer/p/13354480.html
Copyright © 2011-2022 走看看