You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core 7如何实现服务器端求值并投影到命名元组?

在EF Core 7中实现服务器端投影到命名元组

可行。你遇到的报错是因为EF Core的表达式树不支持直接使用元组字面量(x.Id, x.Name),但EF Core 7已经支持将查询投影到命名值元组,只需改用值元组构造函数语法,让EF Core能够将表达式翻译为SQL实现服务器端求值。

解决方案代码

var products = await _context.Products
    .Select(x => new (int Id, string Name)(x.Id, x.Name))
    .ToListAsync();

说明

这种写法会让EF Core在服务器端执行投影(只查询Id和Name字段),最终返回的products就是List<(int Id, string Name)>类型的命名元组集合,完全符合你的需求——既保留了命名元组的类型优势,又能实现服务器端求值,不会像匿名对象那样无法跨方法传递,也比Tuple.Create()更简洁直观。

内容的提问来源于stack exchange,提问作者lonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:50:25