protected virtual IEnumerable <MigrationOperation> Diff( [NotNull] IEnumerable <IForeignKey> source, [NotNull] IEnumerable <IForeignKey> target, [NotNull] DiffContext diffContext) => DiffCollection( source, target, (s, t) => Diff(s, t, diffContext), t => Add(t, diffContext), s => Remove(s, diffContext), (s, t) => (Annotations.For(s).Name == Annotations.For(t).Name) && s.Properties.Select(diffContext.FindTarget).SequenceEqual(t.Properties) && (diffContext.FindTarget(s.PrincipalEntityType.RootType()) == t.PrincipalEntityType.RootType()) && s.PrincipalKey.Properties.Select(diffContext.FindTarget).SequenceEqual(t.PrincipalKey.Properties) && (s.DeleteBehavior == t.DeleteBehavior));
protected virtual IEnumerable <MigrationOperation> Diff( IEnumerable <IForeignKey> source, IEnumerable <IForeignKey> target, DiffContext diffContext) => DiffCollection( source, target, (s, t) => Diff(s, t, diffContext), t => Add(t, diffContext), s => Remove(s, diffContext), (s, t) => { return(Annotations.For(s).Name == Annotations.For(t).Name && s.Properties.Select(diffContext.FindTarget).SequenceEqual(t.Properties) && diffContext.FindTarget(s.PrincipalEntityType.RootType()) == t.PrincipalEntityType.RootType() && s.PrincipalKey.Properties.Select(diffContext.FindTarget).SequenceEqual(t.PrincipalKey.Properties)); });