Description of DB2PrimaryKeyTransformer.
Inheritance: EAPrimaryKeyTransformer
        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);
            }
        }