【发布时间】:2013-12-09 05:47:24
【问题描述】:
我在此线程中解决了类似的问题:Finding objects which contains at least one element from subset using RavenDB and LINQ,但我并不清楚答案。
string[] Categories = new[] {"A", "B"};
foreach (var cat in Categories)
{
var currentTag = cat;
products = products.Where(p => p.Categories.Any(c =>c.Id == currentTag));
}
在调试“Products”时,每个 where 语句之间的结果是“AND”而不是“OR”(例如 ...where category=A AND category=B。你怎么能做同样的事情,只是用一个 OR 运算符?
我的意思是,给我所有产品,至少有类别 A OR B。
最好的 尼玛
【问题讨论】:
-
Any 是 Or,All 是 And。
-
Tim:谢谢,刚刚更正了示例。
-
Raven 似乎不支持“All” - 并且“Any”给出了“AND”。我错过了什么?
-
@Nima 并不是 Any 给出了 AND,事实上您正在以一种导致行为的方式在循环中编写查询。
-
@Euphoric 非常感谢你——就像魅力一样!一段时间以来一直在为此苦苦挣扎 - 非常感谢您的帮助!