具有相同实体类型的一对一关系 - FluentAPI



只是有点担心如何为与同一实体的一对一关系配置 EF,这对我来说很少见。这个要求来到了我身边,我对如何建模有点怀疑。

这是场景,

一个患者可以有一个伴侣,一个伴侣只能属于一个患者。伴侣也是病人。

我有这样的模型;

public class Patient
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public EGender Gender { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime CreatedAt { get; set; }
public long PartnerId { get; set; }
public Patient Partner { get; set; }
public EPatientType PatientType { get; set; }
}

我的 FluentAPI 配置是这样的,但不确定我是否正确

builder.HasOne(p => p.Partner)
.WithOne(p => p.Partner) // Not sure what to do here
.IsRequired(false)
.HasForeignKey<Patient>(p => p.PartnerId)
.OnDelete(DeleteBehavior.Restrict);

任何关于如何在 fluentAPI 上对此进行建模或如何进行的想法都值得赞赏......

尝试使用:

builder.HasOne(p => p.Partner)
.WithOne()
.IsRequired(false)
.HasForeignKey<Patient>(p => p.PartnerId);

它对我有用。

modelBuilder.Entity<Patient>()
.HasOne(a => a.Partner)
.WithOne(b => b.Patient)
.HasForeignKey<Patient>(b => b.PartnerId)
.IsRequired(false);

相关内容

  • 没有找到相关文章

最新更新