我有一个带有两个表Product和ProductCategory的EDM,两者之间有多对多的关系。
我目前要做的是构建一个动态查询,以选择与用户通过用户界面选择的类别相关的产品。
简而言之,我应该构建一个类似下面的查询,但是基于编译时我不知道的一个或多个类别。
var productQuery = context.Product.Where
(p => p.ProductCategories.Any(c => c.CategoryId == id1 ||
c.CategoryId == id2 || ...));
我已经阅读了很多内容,而且我实际上对linq很新,所以我真的不知道从哪里开始。
进行此类查询的最佳方法是什么?
感谢您的时间。
答案 0 :(得分:0)
var ids = new [] { id1, id2, // ...
var productQuery = context.Product.Where(
p => p.ProductCategories.Any(c => ids.Contains(c.CategoryId)));