public void addRemoteColumnsAndKeys() { List <DB_EA.Column> PKInvolvedColumns = new List <DB_EA.Column>(); //check attributes foreach (var attributes in allLogicalClasses.Select(z => z.attributes.Where(x => x.isID))) { foreach (var attribute in attributes) { //get the corresponding transformer var columnTransformer = this.columnTransformers.FirstOrDefault(x => attribute.Equals(x.logicalProperty)); if (columnTransformer != null) { PKInvolvedColumns.Add((DB_EA.Column)columnTransformer.column); } } } //add the columns for the primary key of the dependent table foreach (var dependingTransformer in this.dependingTransformers) { if (dependingTransformer.table.primaryKey != null) { var dependingColumnTransfomers = new List <DB2ColumnTransformer>(); foreach (Column column in dependingTransformer.table.primaryKey.involvedColumns.OrderBy(x => x.position)) { dependingColumnTransfomers.Add(new DB2ColumnTransformer(this._table, column, dependingTransformer, _nameTranslator)); } this._columnTransformers.AddRange(dependingColumnTransfomers); List <Column> FKInvolvedColumns = new List <Column>(); foreach (var columnTransformer in dependingColumnTransfomers) { //get the FK column var FKInvolvedColumn = columnTransformer.getFKInvolvedColumn(); if (FKInvolvedColumn != null) { FKInvolvedColumns.Add(FKInvolvedColumn); } //get the PK column var PKInvolvedColumn = columnTransformer.getPKInvolvedColumn(); if (PKInvolvedColumn != null) { PKInvolvedColumns.Add(PKInvolvedColumn); } } if (FKInvolvedColumns.Count > 0) { this._foreignKeyTransformers.Add(new DB2ForeignKeyTransformer(this._table, FKInvolvedColumns, dependingTransformer, _nameTranslator)); } } } //create primaryKey if (PKInvolvedColumns.Count > 0) { this._primaryKeyTransformer = new DB2PrimaryKeyTransformer(_table, PKInvolvedColumns, _nameTranslator); } }
public void addRemoteColumnsAndKeys() { List<DB_EA.Column> PKInvolvedColumns = new List<DB_EA.Column>(); //check attributes foreach (var attributes in allLogicalClasses.Select(z => z.attributes.Where(x => x.isID))) { foreach (var attribute in attributes) { //get the corresponding transformer var columnTransformer = this.columnTransformers.FirstOrDefault( x => attribute.Equals(x.logicalProperty)); if (columnTransformer != null) { PKInvolvedColumns.Add((DB_EA.Column) columnTransformer.column); } } } //add the columns for the primary key of the dependent table foreach (var dependingTransformer in this.dependingTransformers) { if (dependingTransformer.table.primaryKey != null) { var dependingColumnTransfomers = new List<DB2ColumnTransformer>(); foreach (Column column in dependingTransformer.table.primaryKey.involvedColumns.OrderBy(x => x.position)) { dependingColumnTransfomers.Add( new DB2ColumnTransformer(this._table, column, dependingTransformer,_nameTranslator)); } this._columnTransformers.AddRange(dependingColumnTransfomers); List<Column> FKInvolvedColumns = new List<Column>(); foreach (var columnTransformer in dependingColumnTransfomers) { //get the FK column var FKInvolvedColumn = columnTransformer.getFKInvolvedColumn(); if (FKInvolvedColumn != null) FKInvolvedColumns.Add(FKInvolvedColumn); //get the PK column var PKInvolvedColumn = columnTransformer.getPKInvolvedColumn(); if (PKInvolvedColumn != null) PKInvolvedColumns.Add(PKInvolvedColumn); } if (FKInvolvedColumns.Count > 0 ) { this._foreignKeyTransformers.Add(new DB2ForeignKeyTransformer(this._table,FKInvolvedColumns,dependingTransformer,_nameTranslator)); } } } //create primaryKey if (PKInvolvedColumns.Count > 0) { this._primaryKeyTransformer = new DB2PrimaryKeyTransformer(_table, PKInvolvedColumns,_nameTranslator); } }