LINQ中動態建構WHERE子句
在建立LINQ查詢時,可能需要根據使用者輸入或執行時條件動態地組裝WHERE子句。這在處理複雜的過濾器或動態資料選擇時尤其有用。
例如,假設您有一個包含許多複選框的表單,您將其作為欄位名稱及其對應值的字典傳遞。為了將此動態篩選合併到LINQ查詢中,您可以使用提供的程式碼範例中示範的鍊式方法。
<code class="language-c#">var q = from c in db.ProductDetail where c.ProductGroupName == productGroupName && c.ProductTypeName == productTypeName select c; foreach (var filterPair in filterDictionary) { q = q.Where(c => filterPair.Value.Contains(c.GetPropertyValue(filterPair.Key))); } q = q.OrderBy(c => c.ProductTypeName);</code>
在此範例中,會遍歷filterDictionary,對於每個篩選器對(鍵值對),都會在查詢中新增一個新的WHERE子句。呼叫GetPropertyValue方法來動態檢索指定fieldName的屬性值。
或者,您可以直接在初始查詢語句中連結WHERE子句,如解決方案中提供的範例程式碼所示。
以上是如何在 LINQ 查詢中動態建構 WHERE 子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!