.net core2.x 元组不能在表达树使用
错误信息 Cannot resolve method Void .ctor(Int32, Int32, System.Decimal, System.Decimal) because the declaring type of the method handle System.ValueTuple`4[T1,T2,T3,T4] is generic. Explicitly provide the declaring type to GetMethodFromHandle
在本地可以运行,测试环境就不行,因为本地我装了privew 5 版本测试环境是2.1
https://github.com/dotnet/runtime/issues/29220
代码如下
public async Task<(int QtySum, int CartonsSum, decimal VolumeSum, decimal WeightSum)> GetCountSumByItemIds(List<int> itemIds)
{
// core 2.x错误示例
var result = from o in _context.Orders
join info in _context.TransportInfos on o.Id equals info.OrderId
join item in _context.TransportItems on info.Id equals item.TransportId
where itemIds.Contains(item.Id)
select new Valuetuple<int, int, decimal, decimal>(o.QuantitySum.Value, o.CartonsSum.Value, o.VolumeSum, o.WeightSum);
return await result.FirstOrDefaultAsync();
}
public async Task<(int QtySum, int CartonsSum, decimal VolumeSum, decimal WeightSum)> GetCountSumByItemIds(List<int> itemIds)
{
var result = from o in _context.Orders
join info in _context.TransportInfos on o.Id equals info.OrderId
join item in _context.TransportItems on info.Id equals item.TransportId
where itemIds.Contains(item.Id)
select new Tuple<int, int, decimal, decimal>(o.QuantitySum.Value, o.CartonsSum.Value, o.VolumeSum, o.WeightSum);
// core 2.X 不支持 在表达树中写new Valuetuple<>()
var copyTuple = await result.FirstOrDefaultAsync();
return copyTuple.ToValueTuple();
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步