簡體   English   中英

具有相同實體類型的一對一關系 - FluentAPI

[英]One to One Relationship With Same Entity Type - 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 上對此建模或如何進行的想法表示贊賞......

[索引(“IX_UniqueParentId”,1,IsUnique = true)]

public long? PartnerId { get; set; }

嘗試使用:

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

它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM