/// <summary> /// Write the necessary Sql statements into the specified SqlStringBuilder /// to delete all the records represented by the current collection. /// </summary> /// <param name="sql"></param> public virtual void WriteDelete(SqlStringBuilder sql) { if (this._values.Count > 0) { bool deleteIndividually = Parent == null; if (!deleteIndividually) { if (string.IsNullOrEmpty(ReferencingColumn)) { throw new ArgumentNullException("{0}.ReferencingColumn not set", this.GetType().Name); } sql.Delete(Dao.TableName(typeof(T))) .Where(new AssignValue(ReferencingColumn, Parent.IdValue)) .Go(); } foreach (Dao d in this) { if (d.AutoDeleteChildren) { d.AutoHydrateChildrenOnDelete = AutoHydrateChildrenOnDelete; d.WriteChildDeletes(sql); sql.Go(); } if (deleteIndividually) { d.WriteDelete(sql); sql.Go(); } } } }
public virtual void WriteDelete(SqlStringBuilder sql) { Database db = Database; OnBeforeWriteDelete(db); sql.Delete(TableName()).Where(db.GetAssignment(KeyColumnName, IdValue, sql.ColumnNameFormatter)); OnAfterWriteDelete(db); }
public static SqlStringBuilder From <T>(QueryFilter filter, Database db = null) where T : Dao, new() { SqlStringBuilder sql = GetSqlStringBuilder <T>(db); return(sql.Delete(Dao.TableName(typeof(T))).Where(filter)); }
protected internal virtual void WriteDelete(SqlStringBuilder sqlStringBuilder, IQueryFilter filter) { sqlStringBuilder.Delete(TableName()).Where(filter).Go(); }