public virtual Property FindTargetProperty( [NotNull] string foreignKeyConstraintId, [NotNull] string fromColumnId) { Check.NotEmpty(foreignKeyConstraintId, nameof(foreignKeyConstraintId)); Check.NotEmpty(fromColumnId, nameof(fromColumnId)); ForeignKeyColumnMapping foreignKeyColumnMapping; if (!_foreignKeyColumnMappings.TryGetValue( foreignKeyConstraintId + fromColumnId, out foreignKeyColumnMapping)) { Logger.LogWarning( SqlServerDesignStrings.CannotFindForeignKeyMappingForConstraintId( foreignKeyConstraintId, fromColumnId)); return(null); } var toTable = _tables[_tableColumns[foreignKeyColumnMapping.ToColumnId].TableId]; if (!_tableSelectionSet.Allows(toTable.SchemaName, toTable.TableName)) { // target property belongs to a table which was excluded by the TableSelectionSet return(null); } Property toColumnRelationalProperty; if (!_columnIdToProperty.TryGetValue( foreignKeyColumnMapping.ToColumnId, out toColumnRelationalProperty)) { Logger.LogWarning( SqlServerDesignStrings.CannotFindRelationalPropertyForColumnId( foreignKeyConstraintId, foreignKeyColumnMapping.ToColumnId)); return(null); } return(toColumnRelationalProperty); }