public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan) { //if (!caps[OldObject).ObjectType].Change) //{ plan.RecreateObject(OldObject, NewObject); replacement.Clear(); //} }
public override void AddPhysicalDependencies(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> before, List <AlterOperation> after, AlterPlan plan) { var oldcol = OldObject as ColumnInfo; if (caps.DepCaps.ChangeColumn_Constraint || caps.DepCaps.ChangeColumn_Index) { foreach (var cnt in ParentTable.Constraints) { var cc = cnt as ColumnsConstraintInfo; if (cc == null) { continue; } if (cc.Columns.Any(c => c.Name == oldcol.Name)) { if ( (cc is IndexInfo && caps.DepCaps.ChangeColumn_Index) || (!(cc is IndexInfo) && caps.DepCaps.ChangeColumn_Constraint)) { plan.RecreateObject(cc, null); } } } } if (caps.DepCaps.ChangeColumn_Reference) { foreach (ForeignKeyInfo fk in ParentTable.GetReferences()) { for (int i = 0; i < fk.RefColumns.Count; i++) { if (fk.RefColumns[i].Name == oldcol.Name) { plan.RecreateObject(fk, null); } } } } }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan) { var c = GetConstraintCaps(caps, NewObject); if (!c.Change) { if (c.Create && c.Drop) { plan.RecreateObject(OldObject, NewObject); replacement.Clear(); } else { TransformToRecreateTable(caps, replacement, plan); } } }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan) { if (!caps.ChangeColumn) { TransformToRecreateTable(caps, replacement, plan); return; } if (!caps.ChangeAutoIncrement && ((ColumnInfo)OldObject).AutoIncrement != ((ColumnInfo)NewObject).AutoIncrement) { TransformToRecreateTable(caps, replacement, plan); return; } if (!caps.ChangeComputedColumnExpression && ((ColumnInfo)NewObject).ComputedExpression != null) { plan.RecreateObject(OldObject, NewObject); replacement.Clear(); } }
protected void TransformToRecreateTable(AlterProcessorCaps caps, List <AlterOperation> replacement, AlterPlan plan) { replacement.Clear(); var op = new AlterOperation_RecreateTable { ParentTable = ParentTable }; //ParentTable.LoadStructure(TableStructureMembers.All, targetDb); if (caps.DropConstraint) { foreach (var fk in ParentTable.GetReferences()) { plan.RecreateObject(fk, null); } } op.AppendOp(this); replacement.Add(op); }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List <AlterOperation> replacement, AlterPlan plan) { var c = GetConstraintCaps(caps, OldObject); if (!c.Rename) { if (c.Create && c.Drop) { var newobj = OldObject.CloneObject(null); ((ConstraintInfo)newobj).ConstraintName = NewName.Name; plan.RecreateObject(OldObject, newobj); replacement.Clear(); } else { TransformToRecreateTable(caps, replacement, plan); } } }
protected void TransformToRecreateTable(List<AlterOperation> replacement, AlterPlan plan) { replacement.Clear(); var op = new AlterOperation_RecreateTable { ParentTable = ParentTable }; //ParentTable.LoadStructure(TableStructureMembers.All, targetDb); foreach (var fk in ParentTable.GetReferences()) plan.RecreateObject(fk, null); op.AppendOp(this); replacement.Add(op); }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan) { //if (!caps[OldObject).ObjectType].Change) //{ plan.RecreateObject(OldObject, NewObject); replacement.Clear(); //} }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan) { var c = GetConstraintCaps(caps, OldObject); if (!c.Rename) { if (c.Create && c.Drop) { var newobj = OldObject.CloneObject(null); ((ConstraintInfo)newobj).ConstraintName = NewName.Name; plan.RecreateObject(OldObject, newobj); replacement.Clear(); } else { TransformToRecreateTable(replacement, plan); } } }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan) { var c = GetConstraintCaps(caps, NewObject); if (!c.Change) { if (c.Create && c.Drop) { plan.RecreateObject(OldObject, NewObject); replacement.Clear(); } else { TransformToRecreateTable(replacement, plan); } } }
public override void AddPhysicalDependencies(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> before, List<AlterOperation> after, AlterPlan plan) { var oldcol = OldObject as ColumnInfo; if (caps.DepCaps.ChangeColumn_Constraint || caps.DepCaps.ChangeColumn_Index) { foreach (var cnt in ParentTable.Constraints) { var cc = cnt as ColumnsConstraintInfo; if (cc == null) continue; if (cc.Columns.Any(c => c.Name == oldcol.Name)) { if ( (cc is IndexInfo && caps.DepCaps.ChangeColumn_Index) || (!(cc is IndexInfo) && caps.DepCaps.ChangeColumn_Constraint)) { plan.RecreateObject(cc, null); } } } } if (caps.DepCaps.ChangeColumn_Reference) { foreach (ForeignKeyInfo fk in ParentTable.GetReferences()) { for (int i = 0; i < fk.RefColumns.Count; i++) { if (fk.RefColumns[i].Name == oldcol.Name) { plan.RecreateObject(fk, null); } } } } }
public override void TransformToImplementedOps(AlterProcessorCaps caps, DbDiffOptions opts, List<AlterOperation> replacement, AlterPlan plan) { if (!caps.ChangeColumn) { TransformToRecreateTable(replacement, plan); return; } if (!caps.ChangeAutoIncrement && ((ColumnInfo)OldObject).AutoIncrement != ((ColumnInfo)NewObject).AutoIncrement) { TransformToRecreateTable(replacement, plan); return; } if (!caps.ChangeComputedColumnExpression && ((ColumnInfo)NewObject).ComputedExpression != null) { plan.RecreateObject(OldObject, NewObject); replacement.Clear(); } }