我有经典的3表 - 实体,标签和entitytag - 数据库结构。Linqtosql - 查找与查询中所有标签匹配的所有实体
为了找到标有我使用下面的Linqtosql某些代码标签的所有实体:
string[] myTags = {"tag1","tag2"};
var query = from m in entity
where m.entitytag.Where(c => myTags.Contains(c.tag.TagName)).Count() == myTags.Count()
select m;
然而,当实体有重复的标签(有这个正当的理由在我真正的应用程序)的查询返回不匹配所有标签的实体。
例如,在上面的代码示例中,如果一个实体被标记了两次'tag1'而不是'tag2',它将返回结果,尽管不匹配两个标记。
我不知道如何从结果中排除这些实体?
还是有一个完全不同的方法,我应该采取?
我已经尝试过,但它仍然返回重复的条目。 – 2009-05-18 07:56:10
在Distinct完成此项工作之前添加Select(et => et.tag.TagName)。看到我对这个问题的回答... – 2009-05-18 15:12:12