ATemplate
は、ゼロまたは多数Document
およびゼロまたは多数を持つことができますMetaIndex
。ADocument
は 0 個以上を持つことができIndex
、 aMetaIndex
も 0 個以上を持つことができますIndex
:
これは潜在的なカスケードの問題を表していTemplate
ます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 制約を変更します。制約を作成できませんでした。以前のエラーを参照してください。