Auto-referenciando relações muitos-para-muitos

eu tenho umTicket entidade:

    public class Ticket
    { 
        public int Id { get; set; }
        public string Title { get; set; }

        public virtual ICollection<Relation> RelatedTickets { get; set; }
    }

Quero configurar relações pessoais muitos para muitos no Entity Framework Core, por isso fiz duas relações um para muitos:

public class Relation
{
    [Required, ForeignKey("TicketFrom")]
    public int FromId { get; set; }

    [Required, ForeignKey("TicketTo")]
    public int ToId { get; set; }

    public virtual Ticket TicketFrom { get; set; }
    public virtual Ticket TicketTo { get; set; }
}

Eu tentei criar o relacionamento usando API fluente:

        builder.Entity<Relation>()
               .HasKey(uc => new { uc.FromId, uc.ToId });
        builder.Entity<Relation>()
           .HasOne(c => c.TicketFrom)
           .WithMany(p => p.RelatedTickets)
           .HasForeignKey(pc => pc.FromId);
        builder.Entity<Relation>()
           .HasOne(c => c.TicketTo)
           .WithMany(p => p.RelatedTickets)
           .HasForeignKey(pc => pc.ToId);

Mas, como resultado, tenho um erro:

Não é possível criar um relacionamento entre 'Ticket.RelatedTickets' e 'Relation.TicketTo', porque já existe um relacionamento entre 'Ticket.RelatedTickets' e 'Relation.TicketForm'. As propriedades de navegação podem participar apenas de um único relacionamento.

A solução possível é adicionar a relação pai diretamente aoTicketEntity:

public class Ticket
{ 
    public int Id { get; set; }

    [Required, ForeignKey("ParentRelation")]
    public Nullable<int> ParentRelationId { get; set; }

    public virtual Ticket ParentRelation {get;set;}

    public virtual ICollection<Ticket> RelatedTickets { get; set; }
    ...
}

Com API fluente como esta:

modelBuilder.Entity<Ticket> =>
{
    entity
        .HasMany(e => e.RelatedTickets)
        .WithOne(e => e.ParentRelation) 
        .HasForeignKey(e => e.ParentRelationId );
});

Mas parece "sujo" armazenar a relação dos pais assim.
Qual é a abordagem correta?

questionAnswers(2)

yourAnswerToTheQuestion