实体框架抛出错误“无法计算表达式”.不支持此操作.未知错误:0x80070057."

本文关键字:错误 未知 操作 0x80070057 quot 不支持 表达式 出错 框架 实体 计算 | 更新日期: 2023-09-27 17:54:32

我使用实体框架来获取数据库数据。我编写了一个以JSON格式返回表数据的操作,如下所示:

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

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

函数求值要求所有线程都运行

当我尝试重新加载时,出现一个新的错误:

无法计算表达式。不支持此操作。未知错误:0x80070057

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

实体框架抛出错误“无法计算表达式”.不支持此操作.未知错误:0x80070057."

解决方案是:

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

我认为在JsonResult{}中访问db是导致问题的

计算正常工作,因为您没有将结果集转换为JSON的有效数据类型。

你可以替换下面的代码

JsonResult { Data = db.Employees, JsonRequestBehavior = ..}

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