【问题标题】:Error: introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths错误:引入 FOREIGN KEY 约束可能会导致循环或多个级联路径
【发布时间】:2018-08-08 14:15:06
【问题描述】:

大师们的快速问题。

我有 2 个 EF 模型类:

public class School
{
        public int Id { get; set; }
        [DisplayName("School")]
        public string Name { get; set; }

        public List<Teacher> Teachers { get; set; }
        public List<Note> Notes { get; set; }
}

public class Teacher
{
    public int Id { get; set; }
    [DisplayName("Öğretmen")]
    public string Name { get; set; }
    public int SchoolId { get; set; }

    public School School { get; set; }
    public List<Note> Notes { get; set; }
}

基本上我想在代码优先中创建一对多关系。

但是当我尝试这样做时,我得到了这个错误:

在表“Teachers”上引入 FOREIGN KEY 约束“FK_dbo.Teachers_dbo.Schools_SchoolId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

我在哪里做错了?

编辑

  public class Note
    {
        public int Id { get; set; }
        [Required,DisplayName("Başlık"), StringLength(50)]
        public string Title { get; set; }
        [Required,DisplayName("Açıklama"), StringLength(4000)]
        public string Description { get; set; }
        public string File { get; set; }
        public DateTime UploadDate { get; set; }
        public bool IsApproved { get; set; }
        public int SchoolId { get; set; }
        public int OwnerId { get; set; }
        public int TeacherId { get; set; }


        //Keys

        public School School { get; set; }
        public Teacher Teacher { get; set; }
        public List<Comment> Comments { get; set; }
    }

我没有收到此模型和密钥的任何错误..

【问题讨论】:

  • 什么时候收到异常?在添加迁移?插入数据?你能提供更多的代码吗?看看:Configure ont-to-many relationships in code first
  • @ChW 我只是运行我为创建数据库而创建的数据初始化程序。
  • @ChW 顺便说一句,当我将 public int? SchoolId { get; set; } schoolId 设置为可为空时,错误就消失了。
  • 好吧,可以为空的外键会为你解决这个问题。然后检查您的 ON DELETE 操作,就像异常告诉您的那样。我无法重现您的异常。对我来说,上面的代码一切正常。是否涉及其他模型或您只有这两个?
  • 删除 Note 与 School 的关系,反之亦然。您可以通过与笔记有关系的老师来获取学校。

标签: c# asp.net-mvc entity-framework ef-code-first


【解决方案1】:

删除 Note 与 School 的关系,反之亦然。您可以通过与笔记有关系的老师来获取学校。

它会产生你的问题。

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 2013-10-22
    • 2017-04-26
    • 2017-01-26
    • 2019-10-20
    • 2018-12-14
    相关资源
    最近更新 更多