LINQ在使用下面的linq
时出错var data = (from p in _context.Products
from invp in _context.Inventories
.Where(inv=>inv.Product.ID== p.ID)
.DefaultIfEmpty()//left outer join
select new { p.ID, p.Name, p.BarCode, p.ProductCategory, p.MRP, p.RetailPrice,stock=invp.Stock } ).ToList() ;
转换为值类型System.Decimal
失败,因为具体化值为null。结果类型的通用参数或查询必须使用可空类型。
如果我从select中移除invp.stock它正在工作,如果它为null,我如何将invp.stock默认为0.
答案 0 :(得分:0)
你可以这样选择: 替换
stock=invp.Stock
与
stock=invp.Stock ?? 0
答案 1 :(得分:0)
有可空的十进制数,我们需要转换它们然后才能将数据库null转换为c#
股票=(小数?)invp.Stock