EF框架增删改查 简单封装

2 篇文章 0 订阅

新增数据

		/// <summary>
		/// 新增数据
		/// </summary>
		/// <typeparam name="T"></typeparam>
		/// <param name="t"></param>
		/// <returns></returns>
		public T Add<T>(T t) where T : class, new()
		{
			dbContext.Entry<T>(t).State = EntityState.Added;
			dbContext.SaveChanges();
			return t;
		}

批量新增数据

		/// <summary>
        /// 批量新增数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        public int Add<T>(List<T> t) where T : class, new()
        {
            foreach (var item in t)
            {
                dbContext.Entry<T>(item).State = EntityState.Added;
            }
            return dbContext.SaveChanges();
        }

修改数据

		/// <summary>
        /// 修改数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public int Update<T>(T t) where T : class, new()
        {
            dbContext.Set<T>().Attach(t);
            PropertyInfo[] props = t.GetType().GetProperties();
            foreach (PropertyInfo prop in props)
            {
                if (prop.GetValue(t, null) != null)
                {
                    if (prop.GetValue(t, null).ToString() == " ")
                        dbContext.Entry(t).Property(prop.Name).CurrentValue = null;
                    dbContext.Entry(t).Property(prop.Name).IsModified = true;
                }
            }
            return dbContext.SaveChanges();
        }

删除

		/// <summary>
        /// 删除
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public int Delete<T>(T t) where T : class, new()
        {
            dbContext.Entry<T>(t).State= EntityState.Deleted;
            return dbContext.SaveChanges();
        }

批量删除

		/// <summary>
        /// 批量删除
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="t"></param>
        /// <returns></returns>
        public int Delete<T>(List<T> t) where T : class, new()
        {
            foreach (var item in t)
            {
                dbContext.Entry<T>(item).State = EntityState.Deleted;
            }
            return dbContext.SaveChanges();
        }

查询一条数据

		/// <summary>
        /// 根据条件查询一条数据    
        /// 先查询再修改必须用这个,否则会报错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <returns></returns>
        public T Find<T>(Expression<Func<T, bool>> predicate) where T : class, new()
        {
            return dbContext.Set<T>().AsNoTracking().FirstOrDefault(predicate);
        }

        /// <summary>
        /// 根据主键查询数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key">主键,可多个</param>
        /// <returns></returns>
        public T Find<T>(params object[] key) where T : class, new()
        {
            return dbContext.Set<T>().Find(key);
        }

查询列表同时获取查询数据的总量

		/// <summary>
        /// 查询列表同时获取查询数据的总量
        /// 需要加 .ToList()
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="predicate"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public IQueryable<T> GetList<T>(Expression<Func<T, bool>> predicate,out int count) where T : class, new()
        {
            count = dbContext.Set<T>().Where(predicate).Count();
            return dbContext.Set<T>().Where(predicate);
        }

链接: 下载文件-BaseExp.cs.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_42199478

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值