我正在使用EntityFramework 6.0代码第一个框架,并在尝试'update-database'时不断收到以下错误。
在表'RateTowers'上引入FOREIGN KEY约束'FK_dbo.RateTowers_dbo.DimensionValues_DimensionValueId'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
我还在我的数据库上下文类
中包含了以下代码protected override void OnModelCreating(DbModelBuilder modelBuilder) { base.OnModelCreating(模型构建器);
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
的屏幕截图答案 0 :(得分:0)
首先,如果我没有弄错你的modelBuilder条目3与第一条条目相同。 其次,从您的数据模型中,RateTowers引用了Dimension表和DimensionValue表。这是多余的,因此DimensionValueId也会为您提供维度。如果我尝试删除/更新Dimension表,它将导致(如果级联)删除/更新RateTowers和DimensionValue表,这反过来将导致再次删除/更新RateTowers表。您在删除时声明了没有级联,但更新级联将导致多个级联路径&#34;如在错误消息中。