EntityFramework Code First Sellefening One to One (1: 1) Mappage des relations - Impossible de déterminer la fin principale

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

Question

J'ai ce cours:

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; }

    //...
}

Utilisant EntityFramework Code First Add-Migration me donne le message: Unable to determine the principal end of an association between the types...

Je ne peux pas utiliser le [Required] Attribut, parce que le premier message de ce fil n'aura pas de parent, le dernier message dans le thread n'aura pas d'enfant ... comment puis-je cartographier ceci?

J'ai essayé:

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

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

Mais ça n'a pas marché.

Était-ce utile?

La solution

J'ai trouvé quelque chose qui ressemble à ce pourrait être le cas, si quelqu'un pouvait vérifier que c'est correct:

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

Donc, après quelques tests sérieux, cela semble en effet être la solution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top