2010-07-13 125 views
0

我有两个表Product和ProductCategory,它们都有一个多对多的关系。Linq To Entities的动态查询

我目前试图做的是构建一个动态查询来选择与用户通过UI选择的类别相关的产品。

总之,我应该建立一个类似于下面的查询,但基于一个或多个类别,我不知道在编译时。

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

我读过很多东西,我其实对linq很新,所以我真的不知道从哪里开始。

做这种查询的最佳方法是什么?

谢谢你的时间。

回答

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

就这么简单......好吧,我看起来太过分了。谢谢。 – Yves 2010-07-14 09:44:24

+0

如果ID为空,会发生什么情况? – Krishna 2012-10-12 12:39:30