我想在下面的代码使用的总和,但我得到的错误: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