实体框架抛出错误“无法评估表达式。操作不受支持。未知错误:0x80070057。”

时间:2016-07-02 09:47:12

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

我正在使用Entity Framework来获取数据库数据。我编写了一个以JSON格式返回表数据的操作,如下所示:

public JsonResult GetEmployeesData()
{
     using (TrainingDBEntities db = new TrainingDBEntities())
     {
           return new JsonResult { Data = db.Employees, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
     }
}

它没有抛出任何异常。但是出现了一个控制台错误,错误代码为:500。当我调试时,它显示错误

  

功能评估需要运行所有线程

当我尝试重新加载时,会出现新错误:

  

无法评估表达式。操作不受支持。未知错误:0x80070057

我不知道这段代码有什么问题?

2 个答案:

答案 0 :(得分:3)

解决方案是:

public JsonResult GetEmployeesData()
{
     using (TrainingDBEntities db = new TrainingDBEntities())
     {
           var emps = db.Employees.ToList();
           return new JsonResult { Data = emps, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
     }
}

我认为在JsonResult {}中访问db会导致问题。

答案 1 :(得分:0)

由于您尚未将结果集转换为有效的数据类型,因此评估工作正常。

您可以替换以下代码 JsonResult {数据= db.Employees,JsonRequestBehavior = ..}

JsonResult {数据= db.Employees.ToList(),JsonRequestBehavior = ..}