Entity Framework での 1 対 0 または 1 の関係のカスケード削除
私が最近遭遇したシナリオでは、2 つの POCO クラス User と UserDetail の間に 1 対 0 または 1 の関係が確立されました。ただし、User レコードを削除しようとすると、UserDetail の外部キー制約により、カスケード削除ができないため、User レコードを削除できません。
この問題を解決するには、DbContext で Fluent API を使用する必要があります。次のコード スニペットを追加する必要があります:
<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<User>() .HasOptional(a => a.UserDetail) .WithOptionalDependent() .WillCascadeOnDelete(true); }</code>
User と UserDetail の間の 1 対 0 または 1 の関係は、HasOptional()
メソッドと WithOptionalDependent()
メソッドを使用して確立されます。 WillCascadeOnDelete(true)
メソッドは、この関係のカスケード削除を有効にします。
これらの変更が実装されると、User レコードを削除すると、関連する UserDetail レコードの削除が自動的にトリガーされるようになります。
以上がEntity Framework で 1 対 0 または 1 の関係にカスケード削除を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。