Linq To Entities的动态查询

时间:2010-07-13 12:39:39

标签: entity-framework linq-to-entities

我有一个带有两个表Product和ProductCategory的EDM,两者之间有多对多的关系。

我目前要做的是构建一个动态查询,以选择与用户通过用户界面选择的类别相关的产品。

简而言之,我应该构建一个类似下面的查询,但是基于编译时我不知道的一个或多个类别。

var productQuery = context.Product.Where
            (p => p.ProductCategories.Any(c => c.CategoryId == id1 ||
                                               c.CategoryId == id2 || ...));

我已经阅读了很多内容,而且我实际上对linq很新,所以我真的不知道从哪里开始。

进行此类查询的最佳方法是什么?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

var ids = new [] { id1, id2, // ... 
var productQuery = context.Product.Where(
                       p => p.ProductCategories.Any(c => ids.Contains(c.CategoryId)));