首頁 >後端開發 >C++ >如何使用 Lambda 表達式在 LINQ 中連接多個表?

如何使用 Lambda 表達式在 LINQ 中連接多個表?

Susan Sarandon
Susan Sarandon原創
2025-01-10 10:58:42256瀏覽

How to Join Multiple Tables in LINQ Using Lambda Expressions?

使用LINQ Lambda表達式連接多個表

在LINQ中處理多個表時,您可能需要將它們連接起來以收集相關資料。這可以透過LINQ中的lambda表達式來實現。

假設以下場景:

  • 您擁有Product、Category和ProductCategory(關聯表)的類別。
  • 您希望連接所有三個表,並使用特定屬性填充另一個物件(CategorizedProducts)。

以下是使用lambda表達式執行連線的程式碼更新版本:

<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>

在此程式碼中:

  • Join操作根據指定的條件連接表。
  • 匿名類型作為連接資料的中間表示。
  • Select操作將所需屬性投影到CategorizedProducts物件中。

此解決方案提供了一個包含連接表中所有屬性的單一類,可讓您根據需要填充CategorizedProducts物件。

以上是如何使用 Lambda 表達式在 LINQ 中連接多個表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn