我想在下面的代碼使用的總和,但我得到的錯誤:LINQ:失敗,因爲物化值爲null
The cast to value type 'System.Int32' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type.
Product_Order:
---------------- ----------- ---------
| ProductId | OrderId | Quantity |
---------------- ----------- ---------
我得到的錯誤在「let quantity
」
var fullInfo = (from product in allProdcts
let quantity = db.Product_Order.Where(x=> x.ProductId == product.ID).Sum(x => x.Quantity)
select new ReportVm
{
ProductId = product.ID,
ProductName = product.Name,
AmountProduct = quantity,
TotPrice = (quantity)*(product.Price)
}).ToList();
這是我Product_Order
表(MM關係):
Product_Order:
---------------- ----------- ---------
| ProductId | OrderId | Quantity |
---------------- ----------- ---------
任何想法如何解決這個問題?
請將'Product_Order'自動生成的POCO類添加到您的問題中。如何定義'Quantity'屬性很重要('int'或'int?'), – Sefe
@M.Wiśnicki正如我理解的那樣,如果代碼爲空,代碼會給出值0? – fagol
@M.Wiśnicki我使用該代碼得到相同的錯誤。但只是加入'(int?)'沒有'??'沒有任何錯誤(但我仍然需要值爲0,如果爲空)。編輯:'??'不會與這段代碼一起工作,我在嘗試這個問題之前就試過了。但它在該代碼之外工作。其他解決方案? – fagol