【问题标题】:Foreign Key int Array C#外键 int 数组 C#
【发布时间】:2022-01-26 08:11:25
【问题描述】:

我有相关的表。我怎样才能将这个表中的关系保持为一个数组?

        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; }
 

【问题讨论】:

标签: c# arrays arraylist database-migration


【解决方案1】:

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

您需要有第三张表(其中一张是治疗,假设另一张是患者),例如PatientsTreatments

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2016-04-13
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多