我有經典的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