public void Delete(Database db = null)
        {
            db = db ?? Db.For <L>();
            SqlStringBuilder sql = db.ServiceProvider.Get <SqlStringBuilder>();

            WriteDelete(sql);
            sql.Execute(db);
        }
        public void Commit(Database db = null)
        {
            db = db ?? Database;
            SqlStringBuilder sql = db.ServiceProvider.Get <SqlStringBuilder>();

            WriteCommit(sql);

            sql.Execute(db);
            AfterCommit?.Invoke(db, this);
        }
Exemple #3
0
        protected virtual void Delete(IQueryFilter filter)
        {
            Database         db;
            SqlStringBuilder sql = GetSqlStringBuilder(out db);

            foreach (string key in this.ChildCollections.Keys)
            {
                this.ChildCollections[key].WriteDelete(sql);
            }

            WriteDelete(sql, filter);
            sql.Execute(db);
            sql.Reset();
        }
Exemple #4
0
        public virtual void Delete(Database database = null)
        {
            Database         db;
            SqlStringBuilder sql = GetSqlStringBuilder(out db);

            if (database != null)
            {
                sql = GetSqlStringBuilder(database);
                db  = database;
            }

            if (AutoDeleteChildren)
            {
                WriteChildDeletes(sql);
            }
            WriteDelete(sql);

            OnBeforeDelete(db);
            sql.Execute(db);
            OnAfterDelete(db);
        }
Exemple #5
0
        /// <summary>
        /// Undo any changes that have been made to the current instance
        /// since it was loaded.
        /// </summary>
        /// <param name="db"></param>
        public virtual void Undo(Database db = null)
        {
            Type thisType = this.GetType();

            if (db == null)
            {
                db = Database;
            }

            SqlStringBuilder sql = GetSqlStringBuilder(db);

            ColumnAttribute[] columns = Db.GetColumns(thisType);
            foreach (ColumnAttribute col in columns)
            {
                this.SetValue(col.Name, this.GetOriginalValue(col.Name));
            }
            AssignValue[] values = GetNewAssignValues();
            sql.Update(this.TableName(), values)
            .Where(this.GetUniqueFilter())
            .Go();

            sql.Execute(db);
        }