ホームページ > バックエンド開発 > C++ > エンティティフレームワークコアに余分な分野で多目的な関係を実装する方法は?

エンティティフレームワークコアに余分な分野で多目的な関係を実装する方法は?

Barbara Streisand
リリース: 2025-01-31 10:46:10
オリジナル
821 人が閲覧しました

How to Implement Many-to-Many Relationships with Extra Fields in Entity Framework Core?

エンティティフレームワークコア:余分なフィールドとの多目的な関係の処理

Entity Framework CoreのFluent APIには、多くの関係関連のテーブルをカスタマイズする際の制限があります。 この記事では、結合テーブルに追加のフィールドを追加するための回避策を詳しく説明しています。

モデル設計

この例モデルを検討してください:

<code class="language-csharp">public class Member
{
    public int MemberID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public virtual ICollection<MemberComment> MemberComments { get; set; }
}

public class Comment
{
    public int CommentID { get; set; }
    public string Message { get; set; }
    public virtual ICollection<MemberComment> MemberComments { get; set; }
}

public class MemberComment
{
    [Key, Column(Order = 0)]
    public int MemberID { get; set; }
    [Key, Column(Order = 1)]
    public int CommentID { get; set; }
    public virtual Member Member { get; set; }
    public virtual Comment Comment { get; set; }
    public int Something { get; set; }
    public string SomethingElse { get; set; }
}</code>
ログイン後にコピー

テーブルは、追加のプロパティを含む結合テーブルを表しますMemberCommentおよびSomethingSomethingElse

流fluent APIの制限とソリューション流fluent APIを使用して追加フィールドで結合テーブルを直接構成することは不可能です。 解決策は、代わりに2つの1対多くの関係を実装することです

1対Manyアプローチ:クエリと操作

このアプローチにより、従来の多くの関係として、同様のクエリとデータ操作(追加、更新、削除)が可能になります。 重要なのは、結合テーブルの追加フィールドに基づいてフィルタリングを有効にします。 結合テーブル内の非魅力的な外国の鍵により、カスケード削除は正しく機能します。 結論

Fluent APIはカスタマイズされた多目的参加テーブルを直接サポートしていませんが、2つの1対多数の関係を使用すると、機能的な同等のものが提供され、協会内に追加のフィールドを含めて利用できる柔軟性が提供されます。

以上がエンティティフレームワークコアに余分な分野で多目的な関係を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート