linq to entities来自外连接的十进制空值

时间:2016-06-12 14:21:20

标签: entity-framework-4 linq-to-entities

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.

2 个答案:

答案 0 :(得分:0)

你可以这样选择: 替换

stock=invp.Stock

stock=invp.Stock ?? 0

答案 1 :(得分:0)

有可空的十进制数,我们需要转换它们然后才能将数据库null转换为c#

股票=(小数?)invp.Stock