簡體   English   中英

EntityFramework Code首先自引用一對一(1:1)關系映射 - 無法確定主要結束

[英]EntityFramework Code First self-referencing one to one (1:1) relationship mapping - Unable to determine the principal end

我有這門課:

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

    //...
}

使用EntityFramework Code First Add-Migration為我提供了以下消息: Unable to determine the principal end of an association between the types...

我不能使用[Required]屬性,因為這個線程中的第一條消息沒有父節點,線程中的最后一條消息將沒有子節點...我該如何映射這個?

我試過了:

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

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

但那沒用。

如果有人可以驗證這是正確的,我發現它看起來可能是它的東西:

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

因此,經過一些嚴肅的測試,這似乎確實是解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM