首页 文章

EF6 CodeFirst - 引入FOREIGN KEY约束可能会导致循环或多个级联路径

提问于
浏览
0

我正在尝试更新数据库并得到此错误 . 我已经和它搏斗了一段时间,并且无法弄清楚发生了什么 .

在表'Comments'上引入FOREIGN KEY约束'FK_dbo.Comments_dbo.Users_UserId'可能会导致循环或多个级联路径 . 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束 . 无法创建约束或索引 . 查看以前的错误 .

这是我的 User 课程:

public class User
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required]
    public string Email { get; set; }
    [Required]
    public UserType ProfileType { get; set; }
    [Required]
    public string PasswordHash { get; set; }
    [Required]
    public int Location { get; set; }
    public int? SessionTokenId { get; set; }

    public SessionToken SessionToken { get; set; }
    public List<Comment> Comments { get; set; }
}

这是我的 Comment 课程:

public class Comment
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    [Required]
    public int UserId { get; set; }
    [Required]
    public int ArticleId { get; set; }
    [Required]
    public string Message { get; set; }
    [Required]
    public DateTime PostDate { get; set; }

    public User User { get; set; }
    public Article Article { get; set; }
}

我试图添加一些:

modelBuilder.Entity<Comment>()
            .HasRequired(u => u.User)
            .WithMany()
            .WillCascadeOnDelete(false);

我认为这是错误的,我需要删除有关用户删除的所有用户评论 .

但它没有结果 . 我写错了什么?

1 回答

  • 0

    我想你还有一个依赖项,例如它可能在Article和User之间,在这种情况下你也必须应用你的修复 .

相关问题