[英]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.