我有一個管理稱爲Notes的文檔的應用程序。就像博客一樣,Notes可以針對一個或多個標籤進行搜索,這些標籤包含在Note.Tags集合屬性中。標籤具有名稱和ID屬性,並且匹配是根據ID進行的。用戶可以指定多個標籤進行匹配,在這種情況下,Note必須包含指定要匹配的所有標籤。LINQ查詢查找所有標籤?
我有一個非常複雜的LINQ查詢來執行註釋搜索,使用擴展方法和循環。坦率地說,它有一個真正的代碼味道。我想用更簡單的方法重寫查詢。我知道,如果我做了標記一個簡單的字符串,我可以用這樣的:
var matchingNotes = from n in myNotes
where n.Tags.All(tag => searchTags.Contains(tag))
我可以做,如果我的簡單模型使用Tag對象與ID的東西嗎?查詢是什麼樣的。它可以寫成流利的語法嗎?那將是什麼樣子?
我不認爲你的查詢是按照你的想法進行的 - 它強制該註釋是隻用指定的標籤**標記的。它不檢查它是否具有*指定的所有* – 2010-08-21 23:16:21
有趣 - 謝謝! – 2010-08-21 23:35:44
http://stackoverflow.com/questions/3478874/how-do-i-retrieve-items-that-are-tagged-with-all-the-supplied-tags-in-linq/3479273#3479273 – 2010-08-22 02:04:48