table 'RateTowers' 上的 FOREIGN KEY 约束 'FK_dbo.RateTowers_dbo.DimensionValues_DimensionValueId'

FOREIGN KEY constraint 'FK_dbo.RateTowers_dbo.DimensionValues_DimensionValueId' on table 'RateTowers'

我正在使用 EntityFramework 6.0 代码优先框架,并且在尝试 'update-database.'

时不断收到以下错误

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

我还在我的数据库上下文中包含了以下代码class

受保护的覆盖 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

首先,如果我没记错的话,您的 modelBuilder 条目 3 与第一个相同。 其次,在您的数据模型中,RateTowers 引用了 Dimension table 以及 DimensionValue table。这是多余的,因此 DimensionValueId 也会为您提供维度。如果我尝试删除/更新 Dimension table 它将导致(如果级联)delete/update RateTowers 和 DimensionValue tables 这反过来又会导致 delete/update RateTowers table。您在删除时声明了无级联,但更新级联将导致错误消息中的 "multiple cascade paths"。