转换为值类型'Int32'null值LINQ失败
本文关键字:LINQ 失败 null 转换 类型 Int32 | 更新日期: 2023-09-27 17:53:14
我正在尝试使用视图和LINQ添加一些值,这是我的代码下面
var getProducts = from p in Entity.Products
join od in getOrderDetails on p.id equals od.productId into proDetails
orderby proDetails.Sum(q => q.quantity) descending
select new Common.Views.ProductQuantitySold()
{
productId = p.id,
productName = p.name,
productDesc = p.description,
qtySold = proDetails.Sum(q => q.quantity)
};
return getProducts.Take(10).AsQueryable();
在qtySold = proDetails.Sum(q => q.quantity)
行中,我得到了强制转换值错误。我知道这是关于零或零的东西,但我应该如何实现它?
尝试替换以下行:
qtySold = proDetails.Sum(q => q.quantity)
qtySold = proDetails.Sum(q => (int?)q.quantity) ?? 0
我认为这是一个编译错误。如果不是,请留下评论。尝试将求和的结果转换为int
或将proDetails
的每个元素转换为int
。
例子:
qtySold = (int) proDetails.Sum(q => q.quantity)
另外:
qtySold = proDetails.Cast<int>().Sum(q => q.quantity)
请让我知道它是否有效
qtySold = proDetails.Sum(q => (Int32?)q.quantity) ?? 0