在删除属性之前,必须删除或重新定义所有包含外键的内容 - EF Core

BGT*_*BGT 5 c# asp.net entity-framework ef-code-first entity-framework-core

在使用实体框架核心添加外键后尝试添加迁移时,我收到上述错误。我正在添加FK

public class ApplicantDetail
    {
        [Key]
        public int Id { get; set; }
        [ForeignKey("GrantProgramFK")]
        public GrantProgram GrantProgramId { get; set; }
 --------
   }
Run Code Online (Sandbox Code Playgroud)

这个 FK 与阶级有关

public class GrantProgram
    {
        [Key]
        public int Id { get; set; }
   -----
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。我尝试删除该实体并再次运行迁移,但失败了。

完整错误:

无法从实体类型“EFDataAccessLibrary.Models.ApplicantDetail”中删除属性“GrantProgramId”,因为它正在“EFDataAccessLibrary.Models.ApplicantDetail”的外键 {“GrantProgramId”} 中使用。在删除属性之前,必须删除或重新定义所有包含外键的内容

我找到了一个页面, 点击这里,但这是什么意思?如何解决。

Ser*_*rge -1

您必须在迁移之前修复您的类:

public class ApplicantDetail
    {
        [Key]
        public int Id { get; set; }
         public int? GrantProgramId { get; set; }
        [ForeignKey("GrantProgramId")]
        [InverseProperty("ApplicantDetails")]
        public GrantProgram GrantProgram{ get; set; }
 --------
   }

public class GrantProgram
    {
        [Key]
        public int Id { get; set; }
       [InverseProperty(nameof(ApplicantDetail.GrantProram))]
        public virtual ICollection<ApplicantDetail> ApplicantDetails{ get; set; }
   -----
    }
Run Code Online (Sandbox Code Playgroud)