只是有点担心如何为与同一实体的一对一关系配置 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);