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