ATemplate
可以有零个或多个Document
和零个或多个MetaIndex
。ADocument
可以有零个或多个Index
,aMetaIndex
也可以有零个或多个Index
:
这代表了一个潜在的级联问题,因为删除 aTemplate
将删除它Document
(没关系);删除 aDocument
将删除其Index
,这也可以。但是当删除一个Template
尝试删除的MetaIndex
(也会删除Index
)时会出现一个问题(一个循环)。
我明白这个问题。我认为解决它的一种方法是指定当我删除模板时,它的文档及其文档的索引被删除,以及与模板关联的元索引。但是元数据不会级联删除它的关联索引,因此不会出现循环。
在这里搜索潜在的解决方案,我试过这个:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<MetaIndex>().HasMany<Index>(m => m.IndicesEnteros).WithRequired().WillCascadeOnDelete(false);
}
但它不起作用:
对表引入 FOREIGN KEY 约束可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束。请参阅以前的错误。