c# - 在 .NET Core 2.1 中工作的 EF Linq 查询在 .NET Core 3.1 中不起作用
问题描述
最初在我们的后端使用了这个 EF Linq 查询
return _dbContext.Users.Select(u => new AuthUser
{
Email = u.Email,
Role = u.Role,
}).FirstOrDefaultAsync(e => e.Email.Equals(email, StringComparison.OrdinalIgnoreCase));
但是,禁用隐式客户端执行意味着该查询无法再正确翻译并引发运行时错误。
异常消息和另一个 SO 答案说要在查询中添加调用ToListAsync()
以强制 ICE。我已经尝试过这样做,但现在我得到了编译器错误,因为返回类型被搞砸了,因为我需要等待任务来获取我可以操作的列表。这意味着我需要返回一个我没有做的任务。
这就是我现在所拥有的,它在返回类型上给了我一个编译错误。
public async Task<AuthUser> GetAuthUser(string email)
{
var users = await _dbContext.Users.ToListAsync();
return users.Select(u => new AuthUser
{
Email = u.Email,
Role = u.Role,
}).FirstOrDefault(e => e.Email.Equals(email, StringComparison.OrdinalIgnoreCase));
}
解决方案
推荐阅读
- dji-sdk - 矩阵 210 - “ESC ERROR”,电机上的红色/黄色闪烁灯
- android - 为什么我们将回收器视图包装到嵌套滚动视图中
- node.js - 带有 Angular 5 应用程序的 Azure 部署选项无法在持续集成中编译和构建
- javascript - 如何比较数组中的连续日期/时间项并根据特定时间进行过滤
- sql - 如何创建将在聊天中返回单个消息的过程
- c - 带字符的免费结构数组**
- r - 在 R 中有条件地使用滞后值
- d3.js - Leaflet.js 上的自定义坐标和轴范围
- javascript - jQuery插件 - 初始化后更新元素
- java - 将不同的两个图像添加到 Firebase 实时数据库