I have the following LINQ to SQL query:
var inTransitStocks = orderHistories.Where(oh => oh.Shipped_Qty > 0)
.Select(oh => oh.Shipped_Qty); //.ToList();
var inTransitStock = (int)inTransitStocks.Sum();
没有调用
ToList
时,在Sum()
行会出现以下异常:
如果我在 sum 之前添加一个不能将 null 值分配给类型为 System.Double 的非空值类型成员。
.ToList()
(如注释中所示),就不会出现错误。
为什么我会首先出现这个错误?(Shipped_Qty
不为空,该字段中也不存在 null 数据)
为什么添加ToList()
可以解决问题?
执行的 SQL 查询如下(查询内容不止上面所示):
SELECT [t0].[Shipped Qty]
FROM [dbo].[Order History] AS [t0]
WHERE ([t0].[Shipped Qty] > @p0) AND ([t0].[CUST_ID] = @p1) AND ([t0].[SHIP_TO_ID] = @p2) AND ([t0].[Item] = @p3) AND (([t0].[DT_LST_SHP] >= @p4) OR (UNICODE([t0].[LN_STA]) = @p5))
未返回任何结果。
inTransitStocks.Sum(x => (int?)x) ?? 0
,它应该能够运行。 - Giedrius