我似乎遇到了這個問題。我有一個帶有ID的任務表和一個標記表,它具有標記字段和任務表的外鍵約束。如何檢索用linq中所有提供的標籤標記的項目?
我希望能夠通過標籤執行AND搜索任務。例如,如果我搜索標籤爲「可移植性」和「測試」的任務,我不希望標記爲「可移植性」而不是「測試」的任務。
我試過的語法如下:
var tasks = (from t in _context.KnowledgeBaseTasks
where t.KnowledgeBaseTaskTags.Any(x => tags.Contains(x.tag))
select KnowledgeBaseTaskViewModel.ConvertFromEntity(t)
).ToList();
這當然不會OR搜索,而不是和搜索。我無法弄清楚如何實際切換這是一個AND搜索。
編輯 我還需要能夠搜索任務包含的X標籤中的2個。所以如果任務標記爲「bugfix」,「portability」,「testing」,並且我搜索「testing」和「portability」,那麼這個任務仍然會顯示出來。
這很好用(不得不添加ToList()到子查詢和Select()調用主查詢,但否則它工作。 – KallDrexx 2010-08-13 19:46:23