【问题标题】:Foreign Key cascade path in Entity Framework实体框架中的外键级联路径
【发布时间】:2014-05-15 08:33:25
【问题描述】:

“在表 'AttendanceSheets' 上引入 FOREIGN KEY 约束 'FK_dbo.AttendanceSheets_dbo.AdulLiteracyTeachers_ALTName' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。\r\n可以不创建约束。查看以前的错误。"}

public class AttendanceSheet
    {
        [Required]
        [Key]
        public int Attendanceid { get; set; }
        [DisplayName("District")]
        [ForeignKey("District")]
        public int DistID { get; set; }

        public virtual District District { get; set; }
        [DisplayName("District")]

        [ForeignKey("AdulLiteracyTeachers")]
        public int ALTName { get; set; }
        public virtual AdulLiteracyTeachers AdulLiteracyTeachers { get; set; }

        [DisplayName("Month")]
        public int Month { get; set; }
        [DisplayName("Number Of Days")]
        public int Attandence { get; set; }
    }

使用实体框架添加控制器时出现上述错误。目的是我想填充整个教师名单以供出席。我正在使用外键输入教师姓名

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    在你的数据上下文文件中添加

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    
    }
    

    在您定义 DbSet 的位置下方。

    当有多个路径可以通过外键从另一个实体上删除时,就会发生这种情况。

    例如

    EntityA - EntityB - EntityC - EntityD
    EntityA - EntityC - EntityD
    EntityA - EntityD
    

    删除相关EntityD有多个路径,sql server不允许这样做。

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2019-09-25
      相关资源
      最近更新 更多