首页 文章

FOREIGN KEY约束'FK_dbo.RateTowers_dbo.DimensionValues_DimensionValueId'在表'RateTowers'

提问于
浏览
0

我正在使用EntityFramework 6.0代码第一个框架,并在尝试'update-database'时不断收到以下错误 .

在表'RateTowers'上引入FOREIGN KEY约束'FK_dbo.RateTowers_dbo.DimensionValues_DimensionValueId'可能会导致循环或多个级联路径 . 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束 .

我还在我的DB Context类中包含了以下代码

protected override void OnModelCreating(DbModelBuilder modelBuilder){base.OnModelCreating(modelBuilder);

modelBuilder.Entity<Dimension>().HasMany(dim => 
       dim.DimensionValues).
       WithRequired().
       WillCascadeOnDelete(false);

    modelBuilder.Entity<Dimension>().HasMany(dim => 
       dim.RateTowers).
       WithRequired().
       WillCascadeOnDelete(false);

    modelBuilder.Entity<Dimension>().HasMany(dim => 
       dim.DimensionValues).
       WithRequired().
       WillCascadeOnDelete(false);

}

我附上了我的数据模型的屏幕截图Data Model

1 回答

  • 0

    首先,如果我没有弄错你的modelBuilder条目3与第一个相同 . 其次,从您的数据模型中,RateTowers引用了Dimension表和DimensionValue表 . 这是多余的,因此DimensionValueId也会为您提供维度 . 如果我尝试删除/更新Dimension表,它将导致(如果级联)删除/更新RateTowers和DimensionValue表,这反过来将导致再次删除/更新RateTowers表 . 您在删除时声明了无级联,但更新级联将导致“多个级联路径”,如错误消息中所示 .

相关问题