protected virtual bool EquivalentForeignKeys( [NotNull] IForeignKey sourceForeignKey, [NotNull] IForeignKey targetForeignKey, [NotNull] IDictionary <IProperty, IProperty> columnMap) { Check.NotNull(sourceForeignKey, "sourceForeignKey"); Check.NotNull(targetForeignKey, "targetForeignKey"); Check.NotNull(columnMap, "columnMap"); return (NameBuilder.ForeignKeyName(sourceForeignKey) == NameBuilder.ForeignKeyName(targetForeignKey) && EquivalentColumnReferences(sourceForeignKey.Properties, targetForeignKey.Properties, columnMap) && EquivalentColumnReferences(sourceForeignKey.ReferencedProperties, targetForeignKey.ReferencedProperties, columnMap)); }