7
votes

LINQ2SQL comme commande de phrase

J'essaie de récupérer une liste de chaîne où elle contient "Britney Spears", et c'est ce que j'utilise xxx

qui fonctionne bien, mais si je veux sélectionner le titre qui est "Britney Jean Spears", "Spears" de Britney 'Sexy Ça ne fonctionne pas, alors ma question est de savoir comment insérer un "%" vitrant entre Britney Spears tout en effectuant une recherche Linq2SQL? Merci.

Cordialement, Andy.


0 commentaires

3 Réponses :


-1
votes

Faites exactement comme vous le feriez avec droit SQL

Vous pouvez fournir des caractères spéciaux avec la clause comme tel que "", "%" et "[]" < P> Si cela n'est pas assez bon, vous pouvez utiliser RegEx, mais faites attention à ce que RegEx soit exécuté «client» au-dessous, c'est-à-dire qu'il va chercher le tout puis essaier de réduire les résultats en mémoire. Vous pouvez quelque peu optimiser la méthode des zerkms en faisant xxx

Je ne l'ai pas testé, mais il doit exécuter les deux premières conditions du côté SQL Server, puis affiner à l'aide de Regex .


1 commentaires

Cela ne fonctionnera pas avec LINQ2SQL; Vous devrez appeler asenumerable avant d'appliquer la regex.



0
votes

Il suffit d'utiliser startswith () code> et findien () code> pour simuler le motif. AFAIK, LINQ-TO-SQL ne prend pas en charge les caractères génériques. XXX PRE>

Sinon, vous pouvez exécuter une requête directement si vous avez un motif plus complexe. P>

db.ExecuteQuery<MyObject>("SELECT * "
                        + "FROM Objects "
                        + "WHERE Title LIKE 'Britney%Spears'");


0 commentaires

14
votes

Vous pouvez utiliser SQLMMETHODS.LIQue Code> Méthode à cette fin.

from p in Objects
where SqlMethods.Like(p.Title, "Britney% Spears")
select p


2 commentaires

Oh c'est une alternative beaucoup plus agréable.


Merci beaucoup, c'est très utile.