Я сильно соблазн закрыть это как дубликат; на этот вопрос ответит по-разному по всему сайту:
будет ли скрипт в теге скрипта html с расширением php кэшироваться? Когда браузер автоматически очищает кеш внешнего файла JavaScript? Помощь с агрессивным кешированием JavaScript Как контролировать кеширование веб-страниц во всех браузерах? Как заставить браузер видеть изменения CSS и Javascript?Я бы использовал регулярные выражения, так как вы не всегда можете использовать Linq для SQL.
Как этот пример Linq to Objects
List & lt; string & gt; list = new List & lt; string & gt; (); list.Add ("Это предложение."); list.Add («Это еще один»); list.Add («C # - забава»); list.Add («Linq также забава»); System.Text.RegularExpressions.Regex regEx = new System.Text.RegularExpressions.Regex ("This"); var qry = list .Where & lt; string & gt; (item = & gt; regEx.IsMatch (item)) .ToList & lt; string & gt; (); // Печать результатов foreach (элемент var в qry) {Console.WriteLine (item); }
не уверен, что вы говорите LinqToSql или просто linq ... но вы можете использовать регулярные выражения:
. Где (dto = & gt; System.Text.RegularExpressions.Regex.IsMatch ( dto.CustomerName, @ "Ad"));
Для Entity Framework Core 2.0
существует оператор LIKE
(, объявленный в августе 2017 года ):
var query = from e in _context.Employees, где EF.Functions.Like (e.Title, "% developer%") выбирает e;
Вы говорите LINQ к объектам или LINQ to SQL?
Для LINQ для объектов вам придётся прибегать к регулярным выражениям , которые я думаю.
var result = (from x in db.Members где x.IDNumber.Contains (idnumber) & amp; x.InstitutionIdentifier == instit.Identifier select x) .ToList (); результат возврата;
Будет работать как для Linq to SQL, так и для Linq в памяти.
добавьте System.Data.Linq.SqlClient в ваш список использования или импорта, затем попробуйте:
var results = from x в данных, где SqlMethods.Like (x.SearchField, "% something% например% this% ") выберите x;
В .Net-коде, включая LINQ to Objects, я использую реализацию функции IsSqlLikeMatch из потока . Использование Regex для создания подобной функции SQL. .
Пример использования
bool ret = message.IsSqlLikeMatch (pattern);
Подробнее в моем посте «похожие» шаблоны SQL для сравнения в .Net
Я знаю, что это и старая тема, но вот мое очень простое решение:
string s = Regex.Escape («pattern - escaped for sanity»). Заменить («%») , ". *"). Заменить ("_", ".?"); user = & gt; Regex.IsMatch (user.FullName, s, RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
В этом коде я использую общие escape-символы для языка SQL. Если вы хотите использовать say *
и ?
, escaped string будет содержать \ *
и \?
соответственно, make обязательно включите символ обратного слэша в операторе .Replace (...)
. Конечно, если вы хотите дать своему пользователю возможность искать RexEx, просто не избегайте строки шаблона.
Поиск в учебнике Regex для других опций.
Я считаю, что обычно %
будет соответствовать хотя бы одному символу , а RegEx . *
будет соответствовать ноль или более символов . Таким образом, в действительности подстановочный символ %
больше похож на . +
(жадный), а не . *
(ленивый).
Надеюсь, это поможет.
Вы можете использовать SqlMethods.Like () .
Пример использования:
var results = from u у пользователей, где SqlMethods.Like (u.FirstName, "% John%") выберите u;
Вы также можете использовать «содержит»
var myresult = db.MyItems.Where (x = & gt; x.MyField.Contains (mysearchstring));