public void SaveChanges(System.Data.Entity.Core.Objects.SaveOptions saveOptions) { SaveChanges(_DbContext, saveOptions, _Transaction); //if (_DbContext.IsSysConnect == false && _SysDbContext != null) //SaveChanges(_SysDbContext, saveOptions, _SysTransaction); }
private bool CommitTransaction(bool b, System.Data.Entity.Core.Objects.SaveOptions saveOptions, DbTransaction transaction, EFDbContext dbContext) { bool result = false; if (transaction == null) { throw new ApplicationException("Cannot commit a transaction while there is no transaction running."); } if (!b) { transaction.Rollback(); } else { try { System.Data.Entity.Core.Objects.ObjectContext objContext = ((IObjectContextAdapter)dbContext).ObjectContext; objContext.SaveChanges(saveOptions); dbContext.SaveChanges(); transaction.Commit(); result = true; } catch (Exception exp) { } finally { ReleaseCurrentTransaction(transaction); } } ReleaseCurrentTransaction(transaction); return(result); }
private bool CommitTransaction(System.Data.Entity.Core.Objects.SaveOptions saveOptions, DbTransaction transaction, EFDbContext dbContext) { bool result = false; if (transaction == null) { throw new ApplicationException("Cannot commit a transaction while there is no transaction running."); } try { if (dbContext.ChangeTracker.Entries().Any(x => x.State != System.Data.Entity.EntityState.Detached && x.State != System.Data.Entity.EntityState.Unchanged)) { try { if (BeforeSave != null) { List <object> para = new List <object>(); para.Add(this.UserID); para.Add(dbContext); BeforeSave(para); } System.Data.Entity.Core.Objects.ObjectContext objContext = dbContext.ObjectContext; objContext.SaveChanges(saveOptions); } catch (Exception exp) { if (SaveException != null) { SaveException(exp); } else { throw exp; } } } transaction.Commit(); result = true; } catch (Exception exp) { throw exp; } finally { ReleaseCurrentTransaction(transaction); } return(result); }
private int SubmitChanges(System.Data.Entity.Core.Objects.SaveOptions saveOptions) { var changedEntities = GetChangedEntries().Select(l => l.Entity).Where(n => (n as IBaseEntity) != null && (n as IBaseEntity).HasChanges == true); int changedRows = ((IObjectContextAdapter)this).ObjectContext.SaveChanges(saveOptions); foreach (var entity in changedEntities) { (entity as IBaseEntity).HasChanges = false; (entity as IBaseEntity).ChangeList = new List <String>(); } return(changedRows); }
/// <summary> /// Commit with SaveOption /// </summary> /// <returns></returns> public bool CommitTransaction(bool b, System.Data.Entity.Core.Objects.SaveOptions saveOptions) { bool result = false; result = CommitTransaction(b, saveOptions, _Transaction, _DbContext); //if (_DbContext.IsSysConnect == false && _SysDbContext != null) //{ // if (_SysDbContext.ChangeTracker.Entries().Any(x => x.State != EntityState.Detached && x.State != EntityState.Unchanged)) // result = CommitTransaction(b, saveOptions, _SysTransaction, _SysDbContext); // else // ReleaseCurrentTransaction(_SysTransaction); //} return(result); }
private void SaveChanges(EFDbContext dbContext, System.Data.Entity.Core.Objects.SaveOptions saveOptions, DbTransaction transaction) { if (transaction != null) { throw new ApplicationException("A transaction is running. Call BeginTransaction instead."); } if (dbContext.ChangeTracker.Entries().Any(x => x.State != System.Data.Entity.EntityState.Detached && x.State != System.Data.Entity.EntityState.Unchanged)) { try { if (BeforeSave != null) { List <object> para = new List <object> { this.UserID, dbContext }; BeforeSave(para); } DBTracker tracker = new DBTracker(dbContext); System.Data.Entity.Core.Objects.ObjectContext objContext = dbContext.ObjectContext; objContext.SaveChanges(saveOptions); tracker.SaveChanged(this); } catch (Exception exp) { if (SaveException != null) { SaveException(exp); } else { throw exp; } } } }
//Submits all changes and changes entity state use this when you want to .Reload() a Entity //System.Data.Entity.Core.Objects.SaveOptions.AcceptAllChangesAfterSave //Online runs all Checks when running AcceptAllChanges //System.Data.Entity.Core.Objects.SaveOptions.DetectChangesBeforeSave public int SaveChanges(System.Data.Entity.Core.Objects.SaveOptions saveOptions) { return(this.SubmitChanges(saveOptions)); }
public int SaveChangesEntityOrderingContext(System.Data.Entity.Core.Objects.SaveOptions saveOptions) { LogChanges(EntityOrderingContext.ChangeTracker); return(EntityOrderingContext.SaveChanges(saveOptions)); }