Question

J'ai besoin de remplacer plusieurs chaînes par d'autres dans une requête

from p in dx.Table
where p.Field.Replace("A", "a").Replace("B", "b").ToLower() = SomeVar
select p

Qui fournit une belle instruction SQL avec les commandes SQL REPLACE () appropriées.

Tout va bien:)

Je dois faire cela dans quelques requêtes sur l'application ... Je cherche donc de l'aide à cet égard; cela fonctionnera comme ci-dessus comme une simple touche / commande SQL sur le serveur

Il me semble qu'en regardant autour de moi, je ne peux pas utiliser RegEx car il n'y a pas d'équivalent SQL

Être un débutant LINQ est-il un bon moyen pour moi de le faire?

Par exemple, est-il possible de l’obtenir sous la forme d’un "résultat var" IQueryable " dire et passer cela à une fonction pour ajouter les fichiers nécessaires .Replace () et les renvoyer? Puis-je obtenir un exemple rapide de comment, si oui?

EDIT: Cela semble fonctionner! Cela ressemble-t-il à un problème?

var data = from p in dx.Videos select p;
data = AddReplacements(data, checkMediaItem);
theitem = data.FirstOrDefault();

...

public IQueryable<Video> AddReplacements(IQueryable<Video> DataSet, string checkMediaItem)
{
    return DataSet.Where(p =>
            p.Title.Replace(" ", "-").Replace("&", "-").Replace("?", "-") == checkMediaItem);
}
Était-ce utile?

La solution

Ne serait-il pas plus efficace d'inverser ce que vous essayez de faire, à savoir reformater la chaîne que vous vérifiez plutôt que de reformater les données de la base de données?

public IQueryable<Video> AddReplacements(IQueryable<Video> DataSet, string checkMediaItem)
{
    var str = checkMediaItem.Replace("-", "?").Replace("&", "-").Replace("-", " "));
    return DataSet.Where(p => p.Title == str);
}

Ainsi, vous comparez maintenant le champ de la base de données avec une valeur définie, plutôt que de scanner la table et de transformer les données de chaque ligne et de les comparer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top