微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LINQ to SQL Join和If Condition

如何解决LINQ to SQL Join和If Condition

| 我在下面有一个查询,如果bstock不为null并且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();
    

解决方法

        由于正在运行左联接,因此查询中的“ 1”可以为空。因此,您需要考虑以下因素:
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
                    });
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。