次のLINQtoSQLクエリがあります。
var inTransitStocks = orderHistories.Where(oh => oh.Shipped_Qty > 0)
.Select(oh => oh.Shipped_Qty); //.ToList();
var inTransitStock = (int)inTransitStocks.Sum();
電話をかけないと、次の行ToList
で例外が発生します。Sum()
ヌル値は、ヌル不可能な値タイプであるSystem.Doubleタイプのメンバーに割り当てることはできません。
(コメントに示されているように)前の合計を追加して.ToList()
も、エラーは発生しません。
そもそもなぜエラーが発生するのですか?(Shipped_Qty
nullではなく、そのフィールドの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))
結果は返されません。