我有一個課程表,我需要根據搜索框中鍵入的關鍵字進行搜索。 下面是一個簡單的查詢:LINQ multiple where子句
SELECT * FROM Courses WHERE
Title LIKE '%word%' OR Title LIKE '%excel%' OR
Contents LIKE '%word%' OR Contents LIKE '%excel%'
我如何轉換這在LINQ其中LINQ將動態生成基於每個關鍵字WHERE語句。
我想用戶PredicateBuilder它工作,只要細如該字段爲VARCHAR。對於「TEXT」字段,不會生成引號,從而導致編譯器給出錯誤消息。下面是PredicateBuilder
SELECT [t0].[CoursesID], [t0].[Title], [t0].[Contents], [t0].[Active],
FROM [dbo].[Courses] AS [t0]
WHERE ([t0].[Title] LIKE '%word%') OR ([t0].[Contents] LIKE %word%) OR
([t0].Title] LIKE '%excel%') OR ([t0].[Contents] LIKE %excel%)
注意生成的SQL沒有爲「目錄」字段,它是在數據庫中的文本字段中沒有單引號。
有沒有簡單的方法來建立WHERE語句,並查詢重視呢?有沒有人知道我如何在沒有PredicateBuilder的情況下做到這一點?
在此先感謝。
這將可惜的爲功能才能正常工作。爲了使這個表達式樹的工作,你需要使用這樣的技巧:http://tomasp.net/articles/dynamic-linq-queries.aspx – 2009-03-01 16:55:01