自引用/父子关系一对零或 Entity Framework 核心中的一个
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; }
}
我正在尝试通过 fluent 配置它 api:
entity.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey( .... )
我不明白我必须在最后一行写什么。我也不确定我的实体是否正确。
有人能帮帮我吗?
编辑:这个问题没有解决我的问题:Self referencing / parent-child relationship in Entity Framework
我的问题是关于创建外键。此行不起作用:
.HasForeignKey(x => x.ParentEntityId)
HasForeignKey
需要输入字符串。
在一对一关系中,您始终必须在 HasForeignKey
调用中指定依赖实体类型,即包含外键的实体。对于两个不同 类 之间有意义的一对一关系,请参阅 standard EF example。对于自我参考,很明显 EF 应该弄清楚没有其他选择。不过,您必须指定类型:
modelBuilder.Entity<MyEntity>()
.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey<MyEntity>(c => c.ParentEntityId);
我想在 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; }
}
我正在尝试通过 fluent 配置它 api:
entity.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey( .... )
我不明白我必须在最后一行写什么。我也不确定我的实体是否正确。
有人能帮帮我吗?
编辑:这个问题没有解决我的问题:Self referencing / parent-child relationship in Entity Framework 我的问题是关于创建外键。此行不起作用:
.HasForeignKey(x => x.ParentEntityId)
HasForeignKey
需要输入字符串。
在一对一关系中,您始终必须在 HasForeignKey
调用中指定依赖实体类型,即包含外键的实体。对于两个不同 类 之间有意义的一对一关系,请参阅 standard EF example。对于自我参考,很明显 EF 应该弄清楚没有其他选择。不过,您必须指定类型:
modelBuilder.Entity<MyEntity>()
.HasOne(x => x.ParentEntity)
.WithOne(x => x.ChildEntity)
.HasForeignKey<MyEntity>(c => c.ParentEntityId);