J'ai une liste de mots-clés dans une ArrayList et je voulais être en mesure de créer une requête pour trouver des enregistrements dans une table en fonction de ces mots-clés.LINQ Multiple LIKE basé sur Liste
Étant donné que la liste des mots-clés est dynamique, je ne peux pas générer de requête fixe ici.
je fais quelque chose comme ceci:
foreach (string kw in keywords)
{
query = query.Where(p => p.Name.StartsWith(kw));
}
Le « StartsWith » est nécessaire ici parce que je dois rechercher les enregistrements qui commencent en fait avec le mot-clé fourni.
Dans T-SQL, il serait quelque chose comme ça
Select * from Table where
Name like 'keyword1%'
or Name like 'keyword2%'
or Name like 'keyword3%'
or ...
Mais je dois pouvoir le faire dans LINQ ... Est-ce possible?
Je me demande si LINQ to SQL est vraiment intelligent. Je sais que EF3.5 échouerait lamentablement avec une telle requête. Toujours mon +1. – Steven
En utilisant ceci, la séquence locale "" ne peut pas être utilisée dans l'implémentation LINQ to SQL à l'exception de l'opérateur Contains(). "Exception ... – Bathan
@Bathan: Je suppose que @ Steven a raison - L2S n'est pas Malheureusement, je ne peux pas vraiment voir un moyen facile de le réécrire en utilisant 'Contains' ... – tzaman