Entity framework core 在实体框架代码优先方法中创建外键的问题

Entity framework core 在实体框架代码优先方法中创建外键的问题,entity-framework-core,ef-code-first,ef-core-5.0,Entity Framework Core,Ef Code First,Ef Core 5.0,我有三种型号。类别模型、子类别模型和产品模型 SubCategoryModel具有来自CategoryModel的外键引用,ProductModel具有来自CategoryModel和SubCategoryModel的外键引用 在addmigration命令之后更新数据库时,出现以下错误: 在表“ProductMst”上引入外键约束“FK_ProductMst_Subcategory MST_Subcategory ID”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行

我有三种型号。类别模型、子类别模型和产品模型

SubCategoryModel具有来自CategoryModel的外键引用,ProductModel具有来自CategoryModel和SubCategoryModel的外键引用

addmigration
命令之后更新数据库时,出现以下错误:

在表“ProductMst”上引入外键约束“FK_ProductMst_Subcategory MST_Subcategory ID”可能会导致循环或多个级联路径。指定“在删除时不执行操作”或“在更新时不执行操作”,或修改其他外键约束。 无法创建约束或索引。请参阅前面的错误

这是我的代码-这是
DBContext

public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
{
}

public DbSet<CategoryModel> CategoryMst { get; set; }
public DbSet<SubCategoryModel> SubCategoryMst { get; set; }
public DbSet<ProductModel> ProductMst { get; set; }
这是
子类别
模型:

public class SubCategoryModel
{
        [Key]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [DisplayName("Display Order")]
        [Required]
        [Range(1, int.MaxValue, ErrorMessage = "Display Order for sub category must be greater than 0")]
        public int DisplayOrder { get; set; }

        [ForeignKey("Category")]
        public int CategoryId { get; set; }
        public virtual CategoryModel Category { get; set; }
}
public class ProductModel
{
        [Key]
        public int Id { get; set; }

        [Required]
        public string Name { get; set; }

        public string ShortDesc { get; set; }
        public string Description { get; set; }
        [Range(1, int.MaxValue)]
        public double Price { get; set; }
        public string Image { get; set; }
        [Display(Name = "Category Type")]
       
        [ForeignKey("Category")]
        public int CategoryId { get; set; }
        public virtual CategoryModel Category { get; set; }

        [ForeignKey("SubCategory")]
        public int SubCategoryId { get; set; }
        public SubCategoryModel SubCategory { get; set; }
}
这是
产品
型号:

public class SubCategoryModel
{
        [Key]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        [DisplayName("Display Order")]
        [Required]
        [Range(1, int.MaxValue, ErrorMessage = "Display Order for sub category must be greater than 0")]
        public int DisplayOrder { get; set; }

        [ForeignKey("Category")]
        public int CategoryId { get; set; }
        public virtual CategoryModel Category { get; set; }
}
public class ProductModel
{
        [Key]
        public int Id { get; set; }

        [Required]
        public string Name { get; set; }

        public string ShortDesc { get; set; }
        public string Description { get; set; }
        [Range(1, int.MaxValue)]
        public double Price { get; set; }
        public string Image { get; set; }
        [Display(Name = "Category Type")]
       
        [ForeignKey("Category")]
        public int CategoryId { get; set; }
        public virtual CategoryModel Category { get; set; }

        [ForeignKey("SubCategory")]
        public int SubCategoryId { get; set; }
        public SubCategoryModel SubCategory { get; set; }
}
有关这些多级联路径问题的更多信息,请参阅。