簡體   English   中英

自引用/父子關系一對零或 Entity Framework Core 中的一對

[英]Self referencing / parent-child relationship one-to-zero or one in Entity Framework Core

我想在 Entity Framework Core 中創建一對零或一對的引用/父子關系。 我的意思是我的實體可能有一個父母:

public class MyEntity
{
    public Guid Id { get; set; }

    public Guid? ParentEntityId { get; set; }
    public MyEntity ParentEntity { get; set; }

    public MyEntity ChildEntity { get; set; }
}

我正在嘗試通過流利的 api 對其進行配置:

entity.HasOne(x => x.ParentEntity)
    .WithOne(x => x.ChildEntity)
    .HasForeignKey( .... )

我不明白我必須在最后一行寫什么。 我也不確定我的實體是否正確。

任何人都可以幫助我嗎?

編輯:這個問題不能解決我的問題: 實體框架中的自引用/父子關系我的問題是關於創建外鍵。 此行不起作用:

.HasForeignKey(x => x.ParentEntityId)

HasForeignKey需要輸入字符串。

在一對一的關系中,您始終必須在HasForeignKey調用中指定依賴實體類型,即包含外鍵的實體。 有關兩個不同類之間有意義的一對一關系,請參閱標准 EF 示例 對於自我參考,顯然 EF 應該弄清楚沒有選擇。 不過,您必須指定類型:

modelBuilder.Entity<MyEntity>()
    .HasOne(x => x.ParentEntity)
    .WithOne(x => x.ChildEntity)
    .HasForeignKey<MyEntity>(c => c.ParentEntityId);

暫無
暫無

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

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