我正在寻找一种在linq中对子集合进行IN子句查询的方法。
我有一个例子如下:
Entity: Product.CategoryAssignments - this is an IList<Category> that the product is assigned to. Product can be assigned to multiple categories.
我想检索所有符合类别列表的产品,例如。
IList<Category> selectedCategories = GetUsersSelectedCategories();
//如何做
之类的事情IList<Products> products = from p in repository where p.CategoryAssignments.Contains(?) select p;
任何提示赞赏?
答案 0 :(得分:6)
除非我误解了这个问题,否则我认为答案实际上并不是关于如何在Linq中进行'in'语句,因为你实际上是在比较两个列表的结果。
我不是这方面的专家,因为我不是每天都使用Linq(我是NH Criteria的人),但你真正想要的是联合或动态构造的一组或陈述?
“给我所有类别为此或此或此类别的产品”
要么
“给我这个类别的所有产品”
工会
“给我这个类别的所有产品”
工会
“给我这个类别的所有产品”
因为我并不是所有对Linq的自负,我不打算为此构建声明,但是我愿意打赌这是互联网上有详细记录的问题吗? :)
[编辑] 去看了 - 看起来像这样吗?
var query =
from p in products
where p.Categories.Any(c=> selectedCategories.Contains(c))
select p;
类别是您要与
进行比较的类别列表