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); }
public void Update(T entity) { _dbSet.Attach(entity); _zdDBContext.Entry(entity).State = EntityState.Modified; _zdDBContext.SaveChanges(); }