формы.
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/search?view=aspnetcore-5.0#add-search-by-genre
в контроллере используется такой синтаксис
movies = movies.Where(s => s.Title.Contains(searchString));
Почему и как оно может работать как Non Case Sensitive?
searchString любого регистра одинаково срабатывает как True, но линейный ручной вывод тех же данных на Console.Write показывает False!
т.е. откуда там берется True, когда Contains() так не работает и точно регистр соблюдает?
var movies = from m in DbContext.Movie select m; if (!String.IsNullOrEmpty(searchString)) { foreach (var item in movies) // один и тот же обьект movies { Console.WriteLine(item.Title); Console.WriteLine(item.Title.Contains(searchString)); // False всегда } movies = movies.Where(s => s.Title.Contains(searchString)); // True всегда
У contains второй параметр есть, StringComparison
но он же отсутствует? или метод .Where() его как-то задает?
If the LINQ query is executed in database context, a call to Contains() is mapped to the LIKE operator: .Where(a => a.Field.Contains("hello")) becomes Field LIKE '%hello%'. The LIKE operator is case insensitive by default, but that can be changed by changing the collation of the column.
https://stackoverflow.com/questions/3360772/linq-contains-case-insensitive
спасибо, помогли мудрено однако зато изучил второй параметр Contains(), так бы к lowercase все приводил по классике
Обсуждают сегодня