EntityFramework -Code zuerst Selbstreferenzierung eins zu eins (1: 1) Beziehungszuordnung - Das Haupt Ende kann nicht bestimmen

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

Frage

Ich habe diese Klasse:

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

    //...
}

Verwendung EntityFramework Code First Add-Migration Gibt mir die Nachricht: Unable to determine the principal end of an association between the types...

Ich kann das nicht benutzen [Required] Attribut, weil die erste Nachricht in diesem Thread kein Elternteil hat, hat die letzte Nachricht im Thread kein Kind ... wie kann ich das zuordnen?

Ich habe es versucht:

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

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

Aber das hat nicht funktioniert.

War es hilfreich?

Lösung

Ich habe etwas gefunden, das so aussieht, als könnte es sein, wenn jemand überprüfen könnte, dass dies korrekt ist:

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

Nach einigen schwerwiegenden Tests scheint dies tatsächlich die Lösung zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top