Аналог LIKE (поиск подстроки) в LINQ

124
14 ноября 2021, 17:10

Как переделать данный запрос, чтобы было что-то вроде

WHERE movie.Title LIKE "searchString"

То есть поиск подстроки, а не целой строки.

 public async Task<IActionResult> Index(string searchString)
    {
        IEnumerable<Movie> MovieQuery =
            from movie in db.Movie
            where movie.Title == searchString
            select movie;
        return View(MovieQuery);
    }
Answer 1

Как уже написали, подойдет Title.Contains(searchString), но если проверять надо более сложное вхождение, то лучше так:

public async Task<IActionResult> Index(string searchString)
{
    IEnumerable<Movie> MovieQuery =
        from movie in db.Movie
        where SqlMethods.Like(movie.Title, "%Номер:%"+searchString+"%")
        select movie;
    return View(MovieQuery);
}

В примере проверяется два вхождения, сначала "Номер:", а после него через любое количество символов должно быть значение переменной searchString.

READ ALSO
Описание методов в отдельном классе или классе формы C#

Описание методов в отдельном классе или классе формы C#

Если я создаю программу, которая читает данные сxml документа, стоит ли кидать методы работающие со значениями из документа в отдельный класс?...

82
Как получить в представлении IQueryable&lt;&gt;?

Как получить в представлении IQueryable<>?

Я пробовал писать вот так

202
Как подключить Dependencies к NuGet в проекте?

Как подключить Dependencies к NuGet в проекте?

Подскажите, пожалуйстаКак подключить Dependencies к NuGet в проекте? NuGet создавал, как описано в доках майкрософт Создание и публикация пакета NuGet с помощью...

119
Почему не работают события нажатия мышки в Unity

Почему не работают события нажатия мышки в Unity

Использую функцию OnMouseDown и OnMouseUp, пишу DebugLog, а ничего не выводится

210