Cic*_*cio 4 one-to-one self-referencing-table 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; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过 Fluent api 配置它:
entity.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey( .... )
Run Code Online (Sandbox Code Playgroud)
我不明白我必须在最后一行写什么。我也不确定我的实体是否正确。
有人可以帮我吗?
编辑:这个问题不能解决我的问题:实体框架中的自引用/父子关系 我的问题是关于创建外键。此行不起作用:
.HasForeignKey(x => x.ParentEntityId)
Run Code Online (Sandbox Code Playgroud)
HasForeignKey需要输入一个字符串。
在一对一关系中,您始终必须在调用中指定依赖实体类型HasForeignKey,即包含外键的实体。有关两个不同类之间有意义的一对一关系,请参阅标准 EF 示例。对于自我参考,很明显 EF 应该发现没有选择。不过,您必须指定类型:
modelBuilder.Entity<MyEntity>()
.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey<MyEntity>(c => c.ParentEntityId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2918 次 |
| 最近记录: |