public override DB.DatabaseItem createAsNewItem(DB.DatabaseItem owner, bool save = true) { Table newTable = owner as Table; Database existingDatabase = owner as Database; if (newTable != null) { existingDatabase = newTable.databaseOwner as Database; } if (newTable == null) { //look for corresponding table in existingDatabase newTable = (Table)existingDatabase.tables.FirstOrDefault(x => x.name == this.ownerTable.name); } var newForeignTable = existingDatabase.tables.FirstOrDefault(x => x.name == this.foreignTable.name); if (newTable != null && newForeignTable != null) { var newForeignKey = new ForeignKey(newTable, this._involvedColumns); newForeignKey.name = name; newForeignKey._foreignTable = (Table)newForeignTable; newForeignKey._logicalAssociation = _logicalAssociation; this.setLogicalName(save); newForeignKey.isOverridden = isOverridden; newForeignKey.derivedFromItem = this; //set default value for onDelete newForeignKey.onDelete = "Restrict"; if (save) { newForeignKey.save(); } return(newForeignKey); } return(null); }
public override void createAsNewItem(DB.Database existingDatabase) { //look for corresponding table in existingDatabase Table newTable = (Table)existingDatabase.tables.FirstOrDefault(x => x.name == this.ownerTable.name); var newForeignTable = existingDatabase.tables.FirstOrDefault(x => x.name == this._foreignTable.name); if (newTable != null && newForeignTable != null) { var newForeignKey = new ForeignKey(newTable, this._involvedColumns); newForeignKey.name = name; newForeignKey._foreignTable = (Table)newForeignTable; newForeignKey._logicalAssociation = _logicalAssociation; newForeignKey.isOverridden = isOverridden; newForeignKey.save(); } }
public override DB.DatabaseItem createAsNewItem(DB.DatabaseItem owner, bool save = true) { Table newTable = owner as Table; Database existingDatabase = owner as Database; if (newTable != null) { existingDatabase = newTable.databaseOwner as Database; } if (newTable == null) { //look for corresponding table in existingDatabase newTable = (Table)existingDatabase.tables.FirstOrDefault(x => x.name == this.ownerTable.name); } var newForeignTable = existingDatabase.tables.FirstOrDefault(x => x.name == this.foreignTable.name); if (newTable != null && newForeignTable != null) { var newForeignKey = new ForeignKey(newTable,this._involvedColumns); newForeignKey.name = name; newForeignKey._foreignTable = (Table)newForeignTable; newForeignKey._logicalAssociation = _logicalAssociation; newForeignKey.isOverridden = isOverridden; newForeignKey.derivedFromItem = this; if (save) newForeignKey.save(); return newForeignKey; } return null; }