外键整数数组 C#

Foreign Key int Array C#

我有相关 table。我怎样才能将此 table 中的关系保持为数组?

        public int TreatmentId { get; set; }

        [ForeignKey("TreatmentId")]
        public virtual Treatment Treatment { get; set; }

我希望能够像这样在此处提供 TreatmentId;

当我创建一个数组并尝试迁移时,出现以下错误;

属性 'ContactPage.TreatmentId' 是 'int[]' 类型,当前数据库提供程序不支持该类型。要么更改 属性 CLR 类型,要么使用“[NotMapped]”属性或使用 'OnModelCreating'.

中的 'EntityTypeBuilder.Ignore' 忽略 属性
   public int[] TreatmentId { get; set; }

   [ForeignKey("TreatmentId")]
   public virtual Treatment Treatment { get; set; }
 

你不能将整数数组保存为 FK,但是我看到有人将逗号分隔值添加为字符串,但这种设计是一种非常糟糕的做法,会给你带来很多问题。

您需要有第三个 Table(您的一个表是治疗,假设另一个是患者),例如 PatientsTreatments:

public class PatientsTreatments
{
    public int PatientId { get; set;}
    public int TreatmentId { get; set;}
}

然后您需要为每个治疗添加一条新记录。