最初にEFコードを使用する場合、カスタム接続テーブルを使用してマルチペア関係を確立することは不可能です。 EF内部管理接続テーブルは、モデルの外側に隠されています。
代替方法:関係のペア
追加の属性を持つカスタム接続テーブルを作成するには、1つの異なる方法の2つの方法を使用できます。 これにより、メンバーとメンバーコメントとコメントとメンバーコムメントの間に2つの独立した多関係が作成されます。接続テーブルは、MemberCommentクラスで表されます。このメソッドの利点
<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>
この方法には、次の利点があります
接続テーブルに追加の属性(何かや何かなど)が許可されます。 接続テーブル属性によってより柔軟なクエリとフィルタリングを提供します。
合意することにより、レベルの削除を予約します。
特定の名前とそのコメントを持つメンバーを見つける:
<code class="language-csharp">var commentsOfMembers = context.Members .Where(m => m.LastName == "Smith") .SelectMany(m => m.MemberComments.Select(mc => mc.Comment)) .ToList();</code>
以上が最初にEFコードを使用して、多くの関係で追加のプロパティを備えたカスタム参加テーブルを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。