首页 > 解决方案 > 必须先删除或重新定义所有包含外键,然后才能删除属性 - EF Core

问题描述

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

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

这个 FK 与类有关

public class GrantProgram
    {
        [Key]
        public int Id { get; set; }
   -----
    }

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

完整错误:

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

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

标签: c#asp.netentity-frameworkentity-framework-coreef-code-first

解决方案


我有同样的问题。我通过删除外键中的“id”解决了这个问题:

public class ApplicantDetail
    {
        [Key]
        public int Id { get; set; }
        [ForeignKey("GrantProgramFK")]
        public GrantProgram GrantProgram { get; set; }
 --------
   }

我仍然不知道为什么。如果有人可以解释或给出解决方案以将“id”留在其中,请随时告诉我们。


推荐阅读