使用 LINQ Lambda 表達式掌握多表連接
LINQ(語言整合查詢)提供了一種強大且有效率的與資料庫互動的方式。 資料檢索中的一個常見任務涉及連接多個表。本指南示範如何使用 LINQ lambda 表達式有效地執行這些連接。
讓我們考慮代表資料庫表格的三個範例類別:
Id
、ProdName
、ProdQty
Id
, CatName
ProdId
,CatId
LINQ 的 Join
方法有助於連接這些表。 這是一個例子:
<code class="language-csharp">var query = product.Join(productcategory, p => p.Id, pc => pc.ProdID, (p, pc) => new { product = p, productcategory = pc }) .Join(category, ppc => ppc.productcategory.CatId, c => c.Id, (ppc, c) => new { productproductcategory = ppc, category = c });</code>
此程式碼根據各自的 Product
和 ProductCategory
欄位連接 Category
、Id
和 CatId
。 然而,結果是一個嵌套物件。
要建立更簡化的結果(包含所有相關屬性的單一物件),請使用 Select
方法:
<code class="language-csharp">var categorizedProducts = query.Select(m => new { m.ProdId = ???, m.CatId = ???, //other assignments });</code>
以下是如何將連接表中的屬性正確分配給這個新物件:
<code class="language-csharp">var categorizedProducts = query.Select(m => new { ProdId = m.productproductcategory.product.Id, // or m.productproductcategory.productcategory.ProdId CatId = m.category.Id, // other property assignments from m.productproductcategory.product, m.productproductcategory.productcategory, and m.category });</code>
這種方法將 LINQ lambda 表達式與 Join
和 Select
結合,為多表聯接提供了一種有效的方法,從而產生包含所有必要資料的單一、易於管理的物件。
以上是如何使用 LINQ Lambda 表達式高效能執行多表連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!