我有一个标签列表(列表A),以及与主题匹配的标签列表(列表B)。我想解析列表B中的所有项目,如果它在那里,让它选择列表A中的项目。我已经尝试做两行和一行语句来做到这一点,但我遇到了同样的问题,无论如何我试试。这是我的一行代码尝试:
var tags = db.Tags.Where(x=>x.TagID == db.TagLink.Where(y => y.TopicID == incomingTopicID)).ToList();
列表A和B有一个标签ID的公共列。
有什么建议吗?
db.TagLink的结构是以下列:TagLinkID(Key),TopicID,TagID。
db.Tags的结构是以下列:TagID,TagName,IsTagScored。
答案 0 :(得分:2)
有几种方法可以解决这个问题。这是一种方法:
var tags = db.Tags
.Where(x=>db.TagLink
.Any(y => y.TagId == x.TagId && y.TopicID == incomingTopicID))
.ToList();
答案 1 :(得分:0)
您可以使用Join
,如下所示:
var tags = db.TagLink.Where(x => x.TopicID == incomingTopicID)
.Join(db.Tag, x => x.TagId, y => y.TagId, (x, y) => y)
.ToList();