我在这个帖子中遇到了类似的问题: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));
}
调试“产品”时,结果是每个where语句之间的“AND”而不是“ OR ”(例如......其中category = A AND category = B.你怎么能使用OR运算符进行相同的操作?
我的意思是,给我所有产品,至少有A类 OR B.
最佳尼玛
答案 0 :(得分:2)
您需要使用In
运算符。
string[] cats = new[] {"A", "B"};
var products = session.Query<Products>().Where(p => p.Categories.Any(c =>c.Id.In(cats)));