public void GetCommands(DmlfBatch res, DatabaseInfo db, ChangeSetModel model, bool allowCascade = true) { if (allowCascade && (DeleteReferencesCascade || model.DeleteReferencesCascade)) { var refs = GenerateCascadeDeletions(db); foreach (var item in refs) { item.GetCommands(res, db, model, false); } } if (model.DeleteReferencesCascade && model.DeleteSkipList != null && model.DeleteSkipList.Contains(TargetTable)) { return; } var cmd = new DmlfDelete(); cmd.DeleteTarget = new DmlfSource { TableOrView = TargetTable, LinkedInfo = LinkedInfo, Alias = "basetbl", }; cmd.From.Add(new DmlfFromItem { Source = cmd.DeleteTarget, }); if (!GetConditions(cmd, this, Conditions, db)) { return; } res.Commands.Add(cmd); }
public void GetDeleteCommands(DmlfBatch res, DatabaseInfo db, ChangeSetModel model) { var table = db.FindTable(TargetTable); if (table == null) { return; } if (IsDuplicatingIdentity(db, model)) { var del = new DmlfDelete(); del.DeleteTarget = new DmlfSource { TableOrView = table.FullName, Alias = "basetbl", }; del.SingleFrom = new DmlfFromItem { Source = del.DeleteTarget }; GetConditions(del, this, Conditions, db); res.Commands.Add(del); } }