我有一个管理称为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