2009-12-02 15 views
0

我有三個表格。Linq到字符串數組中的Sql標準

項目

  • 編號
  • 名稱

分類

  • 編號
  • 名稱

ProjectCategories

  • 標識
  • 專案編號
  • 的CategoryId

我現在有一個字符串數組表示類別的用戶已選擇要搜索的。我現在需要找到所有與這些類別相關的項目。

我試過了;

string[] searchTerms = new string[2]; 
searchTerms[0] = "paint"; 
searchTerms[1] = "painting"; 

IQueryable<Project> projects = (from category in dc.ProjectCategories 
where searchTerms.Any(val => category.Category.Name.Contains(val)) 
select category.Project).Distinct(); 

但我得到錯誤;

{「局部序列不能在LINQ用於除載有()操作執行SQL查詢操作的。」}

回答

1

除非我弄錯你的意思,這是可能的,我覺得你可以做一個與searchTerms

where searchTerms.Contains(category.Category.Name) 

包含這將轉化爲SQL作爲

... WHERE Name IN ('paint','painting') ... 
+0

哎呀!當你看到它時很容易。謝謝@tv。 – griegs 2009-12-02 21:13:12