Entity Framework コードファースト: オプションの 1 対 0 または 1 の関係のためのカスケード削除の実装
Entity Framework Code First では、特にオプションの 1 対 0 または 1 のシナリオやカスケード削除を扱う場合、エンティティ間の関係を管理するには、慎重な構成が必要です。
この例では、User
エンティティとオプションの UserDetail
エンティティ間のオプションの 1 対 0 または 1 の関係に対するカスケード削除機能を実装する方法を示します。 このソリューションは、DbContext
.
カスケード削除構成に Fluent API を利用する
Fluent API は、エンティティの関係とデータベースの動作をきめ細かく制御できます。 オプションの関係に対してカスケード削除を有効にするには、OnModelCreating
の DbContext
メソッドを次のように変更します。
<code class="language-csharp">protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<User>() .HasOptional(u => u.UserDetail) .WithOptionalDependent() .WillCascadeOnDelete(true); }</code>
この構成は次の関係を定義します:
HasOptional(u => u.UserDetail)
: User
にオプションで UserDetail
を関連付けることができることを指定します。WithOptionalDependent()
: UserDetail
エンティティが User
エンティティに依存していることを明確に示します。WillCascadeOnDelete(true)
: 重要なことに、これによりカスケード削除動作が有効になります。 User
レコードを削除すると、対応する UserDetail
レコードが存在する場合は自動的に削除されます。Fluent API を使用すると、エンティティの関係とカスケード削除操作を正確に制御し、データベース内のデータの整合性と一貫性を維持できます。
以上がEntity Framework Code First でオプションの 1 対 0 または 1 の関係のカスケード削除を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。