Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyertai Berbilang Jadual dalam LINQ Menggunakan Ungkapan Lambda?

Bagaimana untuk Menyertai Berbilang Jadual dalam LINQ Menggunakan Ungkapan Lambda?

Susan Sarandon
Lepaskan: 2025-01-10 10:58:42
asal
284 orang telah melayarinya

How to Join Multiple Tables in LINQ Using Lambda Expressions?

Sertai berbilang jadual menggunakan ungkapan LINQ Lambda

Apabila bekerja dengan berbilang jadual dalam LINQ, anda mungkin perlu menyertainya untuk mengumpul data berkaitan. Ini boleh dicapai melalui ungkapan lambda dalam LINQ.

Anggap senario berikut:

  • Anda mempunyai kelas untuk Produk, Kategori dan Kategori Produk (jadual berkaitan).
  • Anda mahu menyertai ketiga-tiga jadual dan mengisi objek lain (CategorizedProducts) dengan sifat tertentu.

Berikut ialah versi terkini kod yang menggunakan ungkapan lambda untuk melaksanakan gabungan:

<code class="language-csharp">var categorizedProducts = product
    .Join(productcategory, p => p.Id, pc => pc.ProdId, (p, pc) => new { p, pc })
    .Join(category, ppc => ppc.pc.CatId, c => c.Id, (ppc, c) => new { ppc, c })
    .Select(m => new CategorizedProducts
    {
        ProdId = m.ppc.p.Id, // 或 m.ppc.pc.ProdId
        CatId = m.c.CatId,
        // 其他赋值
    });</code>
Salin selepas log masuk

Dalam kod ini:

  • Kendalian gabungan bergabung dengan jadual berdasarkan syarat yang ditetapkan.
  • Jenis tanpa nama berfungsi sebagai perwakilan perantaraan untuk data yang digabungkan.
  • Pilih operasi memproyeksikan sifat yang diperlukan ke dalam objek CategorizedProducts.

Penyelesaian ini menyediakan satu kelas yang mengandungi semua sifat dalam jadual gabungan, membolehkan anda mengisi objek CategorizedProducts mengikut keperluan.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Berbilang Jadual dalam LINQ Menggunakan Ungkapan Lambda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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