Поиск запросов ASP.NET MVC Entity Framework

Как я могу искать данные с одного входа, например Hulk 2003, из базы данных SQL, когда в базе данных есть два столбца (Movie_title и Release_Date).

Для ясности, столбец Movie_title содержит только название фильма, а датой выпуска этого фильма является столбец Release_Date.

Я пробовал с

 public ActionResult Search(string search)
 {
     if (search == null)
     {
         return View("Index");
     }

     var Movie = db.Movies.Where(m => m.Movie_title .Contains(search) || 
                                      m.Release_date.Contains(search))
                          .ToList();

     return View(Movie);
}

Почему дата выхода включает название фильма?

Ron Beyer 20.10.2018 03:48

Почему вам нужно искать название фильма по дате выхода? Это точно не даст вам правильного результата поиска ....

Chetan 20.10.2018 03:51

Я просто назову его movieTitle, скажем так, я назвал его поиск .... как этот общедоступный поиск ActionResult (поиск строки)

Dusan Nikolic 20.10.2018 03:54

ваш ввод всегда такой, как в этом формате => Hulk 2003, Transformer 2007, Avenger 2012 означает один пробел между именем и годом

er-sho 20.10.2018 07:45

не могли бы вы показать свой объект Movie?

er-sho 20.10.2018 07:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
1 150
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

попытайся :

    if (string.IsNullOrWhiteSpace(search))
        {
    return View("Index");
         }

            string digit = new String(search.Where(Char.IsDigit).ToArray());
            string letter = new String(search.Where(Char.IsLetter).ToArray());
var Movies = db.Movies.Where(m => m.Movie_title.Contains(letter) || m.Release_date.Contains(digit)).ToList();//if Release_Date type is string 



   //for datetime type(just for year)

var Movies = db.Movies.Where(m => m.Movie_title.Contains(letter) || m.Release_date.Year==digit).ToList();

 }

Прочтите вопрос еще раз :) и перейдите в мой проект www.sedeljka.com и найдите фильм hulk, вы увидите 2 из них, но когда вы выполните поиск с помощью hulk 2003, он вернет null

Dusan Nikolic 20.10.2018 15:10
Ответ принят как подходящий

Мне удается найти решение, если есть лучше, пожалуйста, опубликуйте его;)

  public ActionResult Search(string search)
    {
        int year = 0;
        string title = string.Empty;
        string yearparse = string.Empty;
        if (string.IsNullOrWhiteSpace(search))
        {
            return View("Index");
        }

        string movieName = search;
        string movieYear = search;

        for (int i = 0; i < movieName.Length; i++)
        {
            if (char.IsLetter(movieName[i]))
            {
                title += movieName[i];
            }
        }
        for (int i = 0; i < movieYear.Length; i++)
        {
            if (char.IsDigit(movieYear[i]))
            {
                yearparse += movieYear[i];
                year = int.Parse(yearparse);
            }
        }

        var Movies = db.Movies.Where(m => m.Movie_Title.Contains(title) && m.Release_date.Contains(year.ToString())).ToList();

        return View(Movies);

    }

Другие вопросы по теме