ホームページ >バックエンド開発 >C++ >Entity Framework で 1 対 0 または 1 の関係にカスケード削除を実装するにはどうすればよいですか?

Entity Framework で 1 対 0 または 1 の関係にカスケード削除を実装するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-11 13:57:42931ブラウズ

How to Implement Cascade Delete for One-to-Zero-or-One Relationships in Entity Framework?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。