Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh membuat jadual gabungan tersuai dengan sifat tambahan dalam hubungan yang banyak menggunakan kod EF terlebih dahulu?

Bagaimanakah saya boleh membuat jadual gabungan tersuai dengan sifat tambahan dalam hubungan yang banyak menggunakan kod EF terlebih dahulu?

Patricia Arquette
Lepaskan: 2025-01-31 10:41:09
asal
495 orang telah melayarinya

How Can I Create a Custom Join Table with Additional Properties in a Many-to-Many Relationship using EF Code First?

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.

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; }
}
Salin selepas log masuk
<种> 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.
  • Rizab penghapusan tahap dengan dipersetujui.
  • <示> Contoh pertanyaan
Menggunakan model ini, anda boleh melakukan pelbagai pertanyaan, seperti:

Cari semua komen dengan ahli dengan nama keluarga tertentu:

  • Cari ahli dengan nama tertentu dan komen mereka:
var commentsOfMembers = context.Members
    .Where(m => m.LastName == "Smith")
    .SelectMany(m => m.MemberComments.Select(mc => mc.Comment))
    .ToList();
Salin selepas log masuk
  • Komen ahli penapis melalui atribut dalam jadual sambungan:
var membersWithComments = context.Members
    .Where(m => m.LastName == "Smith")
    .Select(m => new
    {
        Member = m,
        Comments = m.MemberComments.Select(mc => mc.Comment)
    })
    .ToList();
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan