Je voudrais construire une requête LINQ à utiliser contre un contexte EF qui a sélectionné des lignes en fonction d’une condition LIKE. Si je comprends bien, vous pouvez obtenir ce problème en utilisant .Contains()
. Cependant, le message LIKE que je souhaite inclure contient une plage de numéros:
LIKE 'LN[0-9]%'
par exemple…
Comment pourrais-je reproduire ce comportement dans une requête simple?
Merci,
Actuellement, vous ne pouvez pas utiliser comme dans LINQ directement. Vous pouvez utiliser StartsWith
, Contains
ou EndsWith
qui sont traduits en LIKE. Une autre solution consiste à utiliser “Where” avec “ssortingng” comme ceci: Where (“quelque chose comme” LN [0-9]% “”)
Voici un exemple
essayez StartsWith comme ceci:
var query = Cities.Where(city => city.Code.StartsWith("LN[0-9]"));
C’est un problème de regex ([0-9] est une nomenclature de regex). Je vous suggère d’essayer quelque chose comme ça:
Regex myRegex = new Regex("LN[0-9]"); var matches = Cities.Where(c => myRegex.IsMatch(c.Field));
Un exemple brut, mais devrait vous aider à démarrer.