不能使用带有IQueryable <t>的.ToList()

时间:2016-03-20 18:42:46

标签: c# asp.net-mvc linq entity-framework-4 parse-error

我的页面上有搜索功能,我使用多个字符串来过滤搜索结果。在这种情况下,最好的方法是使用IQueryable,但我必须将我的搜索结果作为List发送到视图中。

当我尝试转换我的结果.ToList()时出现问题。我在这里得到System.NotSupportedException,saing“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());
    }

0 个答案:

没有答案