Linq嵌套ID以匹配列表

时间:2012-08-25 12:30:42

标签: .net linq

我有一个用于通过实体框架检索数据的函数。

    public IEnumerable<Deal> GetCategory(int subcategoryId)
    {
        using (var uow = new ReadUow())
        {
            var r = new ReadRepo<Deal>(uow.Context);

            var deals = r.FindBy()
                .Include("DealSubcategories")
                .Where(d => d.DealSubcategories.Any(s => s.SubcategoryId == subcategoryId));

            return deals.ToList();
        }
    }

.Where子句允许我通过单个子类别Id(由Lee和Jon Skeet提供)进行过滤,但我在将其与不同查询中的列表进行比较时也在苦苦挣扎。因此,我将以某种方式与List进行比较,而不是单个子类别。

非常令人沮丧所以任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

假设您有IEnumerable<int>个名为ID的ID,其中包含您要搜索的值:

var deals = r.FindBy()
            .Include("DealSubcategories")
            .Where(d => d.DealSubcategories.Any(s => ids.Contains(s.SubcategoryId)));