Entity framework 使用Linq到实体的动态查询

Entity framework 使用Linq到实体的动态查询,entity-framework,linq-to-entities,Entity Framework,Linq To Entities,我有一个EDM,有两个表Product和ProductCategory,两者之间有多对多关系 我目前正在尝试构建一个动态查询,以选择与用户通过UI选择的类别相关的产品 简而言之,我应该构建一个如下的查询,但它基于编译时不知道的一个或多个类别 var productQuery = context.Product.Where (p => p.ProductCategories.Any(c => c.CategoryId == id1 ||

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

我目前正在尝试构建一个动态查询,以选择与用户通过UI选择的类别相关的产品

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

var productQuery = context.Product.Where
            (p => p.ProductCategories.Any(c => c.CategoryId == id1 ||
                                               c.CategoryId == id2 || ...));
我读了很多东西,实际上我对linq很陌生,所以我真的不知道从哪里开始

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


谢谢您抽出时间。

就这么简单。。。嗯,我看得太远了。谢谢。如果ID为空会发生什么?
var ids = new [] { id1, id2, // ... 
var productQuery = context.Product.Where(
                       p => p.ProductCategories.Any(c => ids.Contains(c.CategoryId)));