/// <summary> /// /// </summary> /// <param name="newForeignKey"></param> /// <returns></returns> public ForeignKey getCorrespondingForeignKey(ForeignKey newForeignKey) { var correspondingForeignKey = this.constraints.OfType<ForeignKey>() .FirstOrDefault( x => x.name + x.properties == newForeignKey.name + newForeignKey.properties); if (correspondingForeignKey == null) correspondingForeignKey = this.constraints.OfType<ForeignKey>() .FirstOrDefault( x => x.logicalAssociation != null && x.logicalAssociation.Equals(newForeignKey.logicalAssociation)); return correspondingForeignKey; }
public EAForeignKeyTransformer(ForeignKey foreignKey, UTF_EA.Association association,NameTranslator nameTranslator) : this(nameTranslator) { _foreignKey = foreignKey; _logicalAssociation = association; }
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; }