Невозможно использовать .ToList() с IQueryable‹T›

У меня есть функция поиска на моей странице, где я использую несколько строк для фильтрации результатов поиска. В этом случае лучше всего использовать IQueryable, но я должен отправить результат поиска в виде списка.

Итак, проблема возникает, когда я пытаюсь преобразовать свой результат .ToList(). Я получаю здесь System.NotSupportedException, говоря: «LINQ to Entities не распознает метод System.String ToString()», и этот метод не может быть преобразован в выражение хранилища».

Что я могу сделать в этой ситуации?

    public ActionResult Index(string name, string lastName, string bloodGrade)
    {
        if (Request.IsAjaxRequest())
        {
            IQueryable<User> result = db.Users;

            if (name != null)
            {
                result = result.Where(s => s.Name.Contains(name));
            }
            if (lastName != null)
            {
                result = result.Where(s => s.Lastname.Contains(lastName));
            }
            if (bloodGrade != null)
            {
                result = result.Where(s => s.BloodGrade.ToString() == bloodGrade);
            }

            return PartialView("_Wall", result.ToList());
        }
        return View(db.Users.ToList());
    }

person Misho    schedule 20.03.2016    source источник
comment
Каков основной тип крови в базе данных? Если я не ошибаюсь, проблема в том, что метод ToString не может быть преобразован в допустимый запрос к базе данных.   -  person Gareth van der Berg    schedule 20.03.2016
comment
Но все мои переменные поиска имеют строковый формат, и почему я должен преобразовывать их в ToString()?   -  person Misho    schedule 20.03.2016
comment
Что такое тип BloodGrade? Если это (скажем) int, то ваш параметр должен быть int blodGrade   -  person    schedule 21.03.2016