J'ai la structure classique 3 table - entity, tag et entitytag - base de données.Linqtosql - Trouver toutes les entités correspondant à tous les tags dans une requête
Afin de trouver toutes les entités taggés avec certaines balises J'utilise le code LinqToSql suivant:
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;
Cependant, lorsque les entités ont des balises en double (il y a une raison valable pour cela dans mon application réelle) la La requête renvoie des entités qui ne correspondent pas à toutes les balises. Par exemple, dans l'exemple de code ci-dessus, si une entité était étiquetée deux fois avec 'tag1' et non 'tag2', elle retournerait dans les résultats, bien qu'elle ne corresponde pas aux deux étiquettes.
Je n'arrive pas à comprendre comment exclure ces entités des résultats?
Ou y a-t-il une approche complètement différente que je devrais prendre?
J'ai essayé cela mais il retourne toujours les entrées en double. –
Ajout de Select (et => et.tag.TagName) avant que Distinct fasse ce travail. Voir ma réponse à cette question ... –