表'RateTowers'

时间:2017-06-28 16:19:27

标签: c# .net entity-framework foreign-key-relationship

我正在使用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

的屏幕截图

1 个答案:

答案 0 :(得分:0)

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