C# 一对一自反关系ef核心

C# 一对一自反关系ef核心,c#,database-design,entity-framework-core,C#,Database Design,Entity Framework Core,如何为核心建立一对一的自反关系模型 我有一个模型,它可以是同一类型模型的父模型,也可以是同一类型模型的子模型。把它看作是一种夫妻关系 一对一在同一张桌子上 我在想备选方案1: int? parentId; int? childId; modelBuilder.Entity<ENTITY>() .HasOne(o => o.Parent) .WithOne(a => a.Child)

如何为核心建立一对一的自反关系模型

我有一个模型,它可以是同一类型模型的父模型,也可以是同一类型模型的子模型。把它看作是一种夫妻关系

一对一在同一张桌子上

我在想备选方案1:

int? parentId;
int? childId;

modelBuilder.Entity<ENTITY>()
                .HasOne(o => o.Parent)
                .WithOne(a => a.Child)
                .HasForeignKey<Document>(o => o.parentId)

modelBuilder.Entity<ENTITY>()
                .HasOne(o => o.Child)
                .WithOne(a => a.Parent)
                .HasForeignKey<ENTITY>(o => o.childId) 
int?父ID;
智力?孩子气的;
modelBuilder.Entity()
.HasOne(o=>o.Parent)
.带一个(a=>a.Child)
.HasForeignKey(o=>o.parentId)
modelBuilder.Entity()
.HasOne(o=>o.Child)
.WithOne(a=>a.Parent)
.HasForeignKey(o=>o.childId)
或选择2:

int? relationId
bool parent
modelBuilder.Entity<ENTITY>()
               .HasOne(o => o.Relation)
               .WithOne(a => a.Relation)
               .HasForeignKey<ENTITY>(o => o.relationId) 
int?关系
双亲
modelBuilder.Entity()
.HasOne(o=>o.Relation)
.WithOne(a=>a.Relation)
.HasForeignKey(o=>o.relationId)

我认为2º选项是正确的

 modelBuilder.Entity<ENTITY>()
        .HasOne<Relation>(e => e.Relation)
        .WithOne(r => r.Entity)
        .HasForeignKey<ENTITY>(r => r.relationId);
modelBuilder.Entity()
.HasOne(e=>e.Relation)
.WithOne(r=>r.Entity)
.HasForeignKey(r=>r.relationId);
这个链接很有用。 希望有帮助