如果 bstock 不为空且 bstock.Price (bstock.Price 为可为 null 的 doubel? ) 不为 null。该连接是左外部连接。有人可以帮助我吗?
var bstocks = (from p in qry
join bstock in bstockRepository.Select() on p.StockCode equals bstock.StockCode
into J1
from bstock in J1.DefaultIfEmpty()
select new
{
p.StockCode,
p.Description,
p.ListPrice,
p.Price = bstock.Price != null ? bstock.Price : p.Price,
p.QuantityOnHand ,
p.Cube,
p.ShippingFormat,
p.Weight,
p.NextShipment,
p.NextShipment2,
p.NextShipmentQuantity,
p.NextShipment2Quantity,
Bstock = p.Bstock
}
).AsQueryable();
最佳答案
bstock
在您的查询中可以为空,因为您正在运行左连接。所以你需要考虑到这一点:
Price = bstock != null && bstock.Price != null ? bstock.Price : p.Price,
结果:
var bstocks = (from p in qry
join bstock in bstockRepository.Select() on
p.StockCode equals bstock.StockCode into J1
from bstock in J1.DefaultIfEmpty()
select new
{
p.StockCode,
p.Description,
p.ListPrice,
Price = bstock != null && bstock.Price != null ? bstock.Price : p.Price,
p.QuantityOnHand ,
p.Cube,
p.ShippingFormat,
p.Weight,
p.NextShipment,
p.NextShipment2,
p.NextShipmentQuantity,
p.NextShipment2Quantity,
Bstock = p.Bstock
});
关于c# - LINQ to SQL 连接和 If 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6326008/