我在LINQ中遇到IsNull问题:
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
p.LoadingsDetails.Sum(n => n.Quantity)
的可能性NULL
。我想要这样的结果:
select Id, IsNull(Sum(Quantity),0) as Quantity from LoadingsDetails
我尝试过类似的事情:
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = p.LoadingDetails.First() == null ? p.Quantity : p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
返回错误:
System.NotSupportedException:方法“ First”只能用作 最终查询操作。考虑使用方法“ FirstOrDefault” 代替这个实例。
我尝试过这样的事情:
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = (p.LoadingsDetails.Sum(n => n.Quantity) == DBNull.Value) ? p.Quantity : p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
OR
db.WarehouseInputsDetails
.Select(p => new WarehouseInputDetailsViewModel
{
Id = p.Id
RemainingQuantity = p.LoadingsDetails.First().Quantity == DBNull.Value ? p.Quantity : p.Quantity - p.LoadingsDetails.Sum(n => n.Quantity)
}).AsQueryable();
返回错误:
运算符'=='不能应用于类型'decimal'和'DBNull'的操作数
答案 0 :(得分:2)
您可以在此处使用<ul id='list'>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
<li>ITEM</li>
</ul>
来检查Any()
是否存在任何行,如果是,则将LoadingDetails
与Quantity
的总和为:
LoadingDetails