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