码迷,mamicode.com
首页 > Web开发 > 详细

.net core2.x 元组不能在表达树使用

时间:2020-06-28 18:38:02      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:result   new   ring   ann   tps   xpl   mes   tuple   otn   

错误信息 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();
}

.net core2.x 元组不能在表达树使用

标签:result   new   ring   ann   tps   xpl   mes   tuple   otn   

原文地址:https://www.cnblogs.com/caiyangcc/p/13204265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!