我有以下数据结构
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() };