public int Update(T entity)
        {
            int i = -1;

            //startup 文件 增加 UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking)
            //可以去除跟踪Tracking 使得下面的更新可以 不跟踪 后更新
            using (var transaction = DBContext().Database.BeginTransaction())
            {
                try
                {
                    //主操作
                    _dbContext.Entry(entity).State = EntityState.Modified;
                    i = _dbContext.SaveChanges();
                    otherOperation.Invoke();//这句在上面SaveChanges下面 可以保护返回i值不被 otherOperation 里的SaveChanges 修改
                    transaction.Commit();
                    //清除缓存
                    _distributedCache.Remove(this.ToString());
                }
                catch (Exception ex)
                {
                    Console.Write(ex.ToString());
                    return(i);
                }
            }
            return(i);
        }
Example #2
0
 public void Update(T entity)
 {
     _dbSet.Attach(entity);
     _zdDBContext.Entry(entity).State = EntityState.Modified;
     _zdDBContext.SaveChanges();
 }