2017-06-28 42 views
0

我正在使用EntityFramework 6.0代码第一个框架,并在尝试“更新数据库”时不断收到以下错误。表'RateTowers'上的FOREIGN KEY约束'FK_dbo.RateTowers_dbo.DimensionValues_DimensionValueId'

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

我也包括在我的DB Context类下面的代码

保护覆盖无效OnModelCreating(DbModelBuilder模型构建器) { 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

首先,如果我没有记错的模型构建器第3项是一样的第一个。 其次,您的数据模型中,RateTowers引用了Dimension表和DimensionValue表。这是多余的,因此DimensionValueId会给你维度。如果我尝试删除/更新Dimension表,它会导致(如果级联)删除/更新RateTowers和DimensionValue表,这又会导致再次删除/更新RateTowers表。您在删除时声明了不级联,但更新级联将导致错误消息中的“多个级联路径”。

+0

感谢您的评论。我重新构建了我的模型,并且我可以固有地从维度价值中获得维度。 –