Exemplo n.º 1
0
        public void SaveChanges(EntitySession session)
        {
            if (session.HasChanges())
            {
                var conn      = GetConnection(session);
                var updateSet = new DbUpdateSet(session, this.DbModel, conn);
                var batchMode = ShouldUseBatchMode(updateSet);
                if (batchMode)
                {
                    SaveChangesInBatchMode(updateSet);
                }
                else
                {
                    SaveChangesNoBatch(updateSet);
                }
            }
            //commit if we have session connection with transaction and CommitOnSave
            var sConn = session.CurrentConnection;

            if (sConn != null)
            {
                if (sConn.DbTransaction != null && sConn.Flags.IsSet(DbConnectionFlags.CommitOnSave))
                {
                    sConn.Commit();
                }
                if (sConn.Lifetime != DbConnectionLifetime.Explicit)
                {
                    ReleaseConnection(sConn);
                }
            }
            session.ScheduledCommandsAtStart = null;
            session.ScheduledCommandsAtEnd   = null;
        }
Exemplo n.º 2
0
        public void SaveChanges(EntitySession session)
        {
            if (session.HasChanges())
            {
                var records   = session.RecordsChanged.Where(rec => ShouldUpdate(rec)).ToList();
                var conn      = GetConnection(session);
                var updateSet = new UpdateSet(conn, _timeService.UtcNow, records);
                var batchMode = ShouldUseBatchMode(updateSet);
                if (batchMode)
                {
                    SaveChangesInBatchMode(updateSet);
                }
                else
                {
                    SaveChangesNoBatch(session, updateSet);
                }
            }
            //commit if we have session connection with transaction and CommitOnSave
            var sConn = session.CurrentConnection;

            if (sConn != null)
            {
                if (sConn.DbTransaction != null && sConn.Flags.IsSet(ConnectionFlags.CommitOnSave))
                {
                    sConn.Commit();
                }
                if (sConn.Lifetime != ConnectionLifetime.Explicit)
                {
                    ReleaseConnection(sConn);
                }
            }
            session.ScheduledCommands.Clear();
        }
Exemplo n.º 3
0
 public void SaveChanges(EntitySession session)
 {
     if (session.HasChanges()) {
     var records = session.RecordsChanged.Where(rec => ShouldUpdate(rec)).ToList();
     var conn = GetConnection(session);
     var updateSet = new UpdateSet(conn, _timeService.UtcNow, records);
     var batchMode = ShouldUseBatchMode(updateSet);
     if (batchMode)
       SaveChangesInBatchMode(updateSet);
     else
       SaveChangesNoBatch(session, updateSet);
       }
       //commit if we have session connection with transaction and CommitOnSave
       var sConn = session.CurrentConnection;
       if (sConn != null) {
     if (sConn.DbTransaction != null && sConn.Flags.IsSet(ConnectionFlags.CommitOnSave))
       sConn.Commit();
     if (sConn.Lifetime != ConnectionLifetime.Explicit)
       ReleaseConnection(sConn);
       }
       session.ScheduledCommands.Clear();
 }