我有某种语法错误。
var productsForList = from p in db.vEUProducts
join pt in db.vEUProductTags on p.ProductId equals pt.ProductId
group p by p.ProductId into relevance
where toList.Contains(pt.TagId) && (relevance.Count() == toList.Count)
orderby relevance descending
select pt;
我收到错误:
'名称" pt"在当前上下文中不存在"
为什么?
它指向toList.Contains(**pt**.TagId)
我所做的只是添加小组,现在找不到pt
?
我错过了什么?
TagID是主键。我有产品,我有标签。我想获得与列表中的标签匹配一定次数的产品。
昨天我的问题here可能有所帮助。
答案 0 :(得分:0)
你可以尝试:
var productsForList = from p in db.vEUProducts
join pt in db.vEUProductTags on p.ProductId equals pt.ProductId
where toList.Contains(pt.TagId)
group pt by pt.ProductId into relevance
where relevance.Count() == toList.Count
select relevance;
(我已将where
分成两个where
)
但我不确定你要做什么......我不知道TagId
是否是主键。您应该尝试解释什么是TagId
以及您想要获得什么。
使用结果的例子:
// Each obj is a group with key the ProductId and elements the tags matched
foreach (var obj in productsForList)
{
int productId = obj.Key;
foreach (var matchedTags in obj)
{
}
}