entity framework抛出错误“无法评估表达式。 操作不受支持。 未知错误:0x80070057。“
我正在使用Entity Framework来获取数据库数据。 我写了一个以JSON格式返回表数据的动作,如下所示:
public JsonResult GetEmployeesData() { using (TrainingDBEntities db = new TrainingDBEntities()) { return new JsonResult { Data = db.Employees, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } }
它没有抛出任何exception。 但是出现了错误代码的控制台错误:500。当我调试时,它显示错误
function评估需要运行所有线程
当我尝试重新加载时,会发生新的错误:
无法评估表达式。 操作不受支持。 未知错误:0x80070057
我不知道这段代码有什么问题吗?
解决方案是:
public JsonResult GetEmployeesData() { using (TrainingDBEntities db = new TrainingDBEntities()) { var emps = db.Employees.ToList(); return new JsonResult { Data = emps, JsonRequestBehavior = JsonRequestBehavior.AllowGet }; } }
我认为在JsonResult {}中访问db会导致问题。
评估工作正常,因为您尚未将结果集转换为有效的数据类型。
你可以替换下面的代码JsonResult {Data = db.Employees,JsonRequestBehavior = ..}
同
JsonResult {Data = db.Employees.ToList(),JsonRequestBehavior = ..}