0

我有以下数据结构

Store
Id
StoreName

Product
Id
Name
StoreId

Category
Id
Name

ProductCategory
Id
ProductId
CategoryId

Deal
Id
Name

DealCategory
Id
DealId
CategoryId

我的要求是获取代表类别的字符串集合,然后查询在任何给定类别中有产品或交易的商店。任何人都可以帮忙,因为我很难过。如果我不按类别过滤,我会得到正确的结果,但过滤器位似乎失败了,我没有收到任何记录,而且我确信在给定类别中至少有一个商店同时包含产品和交易。

到目前为止,这是我的代码,如果我删除 where 子句,我会得到正确的数据,即所有商店(有交易或产品?!我还没有测试这种歧视)。

from s in ctx.Store
join d in ctx.Deals on s.ID equals d.StoreID
join l in ctx.Products on s.ID equals l.StoreID                        
where d.DealCategories.Any(dc => categoriesList.Contains(dc.Category.Name.ToLower()))
group s by s.ID into sg
select new { Store = sg.FirstOrDefault() };
4

0 回答 0