EF Code First Cascade删除不起作用

时间:2014-02-25 22:58:43

标签: vb.net entity-framework cascade cascading-deletes

我有这个模型定义,我想在其上级联删除。

With modelBuilder.Entity(Of dbDimension)()
        .Property(Function(t) t.dbDimensionID).
            HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
        .HasKey(Function(t) t.dbDimensionID)
        .Property(Function(t) t.Name).
            HasColumnName("DimensionName")
        .ToTable("Dimension")

        modelBuilder.Entity(Of dbDimension)().
            HasRequired(Function(t) t.Model).
            WithMany(Function(t) t.mDimensions).
            HasForeignKey(Function(t) t.dbModelID_FK).
            WillCascadeOnDelete(True)


        modelBuilder.Entity(Of dbDimension)().
            HasMany(Function(t) t.Cubes).
            WithMany(Function(t) t.Dimensions).
        Map(Sub(m)
                m.ToTable("Dimension-Cube")
                m.MapLeftKey("dbDimensionID")
                m.MapRightKey("dbCubeID")
            End Sub)

 End With

在我删除模型时,维度也会被删除,但多对多关系不会被删除。 我该怎么做才能解决这个问题?

我使用Dotconnect(SQLLite)作为数据库驱动程序。

1 个答案:

答案 0 :(得分:0)

默认情况下,SQLite中未启用外键支持。您需要启用它,例如通过在连接字符串中添加“外键约束=开”:

Data Source = test_data.db;外键约束=开

如果不是这样,请向我们发送测试项目以支持devart * com,以便我们能够调查问题并为您找到解决方案。