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 约束。无法创建约束。请参阅以前的错误。