Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh membuat jadual gabungan tersuai dengan sifat tambahan dalam hubungan yang banyak menggunakan kod EF terlebih dahulu?
menggunakan jadual sambungan tersuai dalam pelbagai hubungan
Apabila menggunakan kod EF terlebih dahulu, adalah mustahil untuk menggunakan jadual sambungan tersuai untuk mewujudkan hubungan multi -pair. Jadual sambungan pengurusan dalaman tersembunyi di luar model.
Kaedah alternatif: Sepasang hubungan
Untuk membuat jadual sambungan tersuai dengan atribut tambahan, anda boleh menggunakan dua kaedah yang berbeza dari satu -ke -multiple hubungan:
Ini mewujudkan dua multi -hubungan bebas antara ahli dan ahli dan komen dan ahli. Jadual sambungan diwakili oleh kelas ahli.
<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>Kelebihan kaedah ini
Kaedah ini mempunyai kelebihan berikut:
membolehkan atribut tambahan pada jadual sambungan (seperti sesuatu dan sesuatu).memberikan lebih banyak pertanyaan dan penapisan yang lebih fleksibel dengan atribut jadual sambungan.
Cari semua komen dengan ahli dengan nama keluarga tertentu:
<code class="language-csharp">var commentsOfMembers = context.Members .Where(m => m.LastName == "Smith") .SelectMany(m => m.MemberComments.Select(mc => mc.Comment)) .ToList();</code>
<code class="language-csharp">var membersWithComments = context.Members .Where(m => m.LastName == "Smith") .Select(m => new { Member = m, Comments = m.MemberComments.Select(mc => mc.Comment) }) .ToList();</code>
Atas ialah kandungan terperinci Bagaimanakah saya boleh membuat jadual gabungan tersuai dengan sifat tambahan dalam hubungan yang banyak menggunakan kod EF terlebih dahulu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!