private static void UpdatePrimaryKeysInformation(TableInfo[] tables, TSqlObject[] keys) { // Get schema for all primary keys foreach (var key in keys) { string keyName = key.Name.Parts[1]; string tableName = keyName.Substring(3); var columns = key.GetReferenced(PrimaryKeyConstraint.Columns).ToArray(); var primaryKeyColumns = new ColumnInfo[columns.Length]; for (int i = 0; i < primaryKeyColumns.Length; i++) { primaryKeyColumns[i] = GetSchemaForColumn(columns[i]); } var targetTable = tables.FirstOrDefault(t => t.ShortName == tableName); if (null == targetTable) { throw new InvalidOperationException( "Could not find target table for primary key " + key.Name); } targetTable.PrimaryKey = primaryKeyColumns; } }