EntityFramework Code First AutoReferenciando uno a uno (1: 1) Mapeo de relaciones: incapaz de determinar el fin principal

StackOverflow https://stackoverflow.com/questions/19825848

Pregunta

Tengo esta clase:

public class Message
{
    public long Id { get; set; }

    public string Subject { get; set; }

    public string Message { get; set; }

    public virtual Message ParentMessage { get; set; }

    public virtual Message ChildMessage { get; set; }

    //...
}

Usando EntityFramework Code First Add-Migration me da el mensaje: Unable to determine the principal end of an association between the types...

No puedo usar el [Required] atributo, porque el primer mensaje en este hilo no tendrá un padre, el último mensaje en el hilo no tendrá hijo ... ¿cómo mapeo esto?

Lo intenté:

        modelBuilder.Entity<Message>()
            .HasOptional(x => x.ParentMessage);

        modelBuilder.Entity<Message>()
            .HasOptional(x => x.ChildMessage);

Pero eso no funcionó.

¿Fue útil?

Solución

Encontré algo que parece que podría ser, si alguien pudiera verificar que esto sea correcto:

        modelBuilder.Entity<SecureMessage>()
            .HasOptional(x => x.ParentMessage)
            .WithOptionalDependent(x => x.ChildMessage);

Entonces, después de algunas pruebas serias, esta parece ser la solución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top