使用实体框架时出现“无法计算表达式”错误

本文关键字:计算 表达式 错误 实体 框架 | 更新日期: 2023-09-27 18:31:35

我正在使用实体框架来访问我的数据库,我想使用以下代码获取一行(或者说整个表):

using (var db = new dbContext())
{
    var user= (from o in db.AspNetUsers
                where o.Email == "email@domain.tld"
                select o).FirstOrDefault();
    var userList = db.AspNetUsers.ToList();
}

但是当我在这两个查询之后添加断点时,只有"无法计算表达式"错误,或者存储在我的useruserList中的这些错误列表。我被困住了,无法弄清楚为什么会发生这种情况。

我已经做了一些研究,有人说这可能是Visual Studio的"代码优化"。但我认为,当您在调试模式下启动应用程序时,代码没有优化。另外,我还没有找到停用代码优化的选项。

使用实体框架时出现“无法计算表达式”错误

好的,调试器表达式计算 wrt 确实出了问题。智商。

尝试快速观看:

db.Table.FirstOrDefault(i => true)      // works
db.Table.FirstOrDefault(i => i.Id == 3) // "The debugger is unable to evaluate this expression"
db.Table.ToList().FirstOrDefault(i => i.Id == 3) // woks
db.Table.ToList().AsQueryable().FirstOrDefault(i => i.Id == 3) // crashes msvcmon.exe !!!

我很确定这是一种回归。