卡在此linq查询中,我需要做的就是优化最后的价格计算,因为我得到了1000条左右的商品,而且销售量很大,所以它变慢了……

var result = from article in db.Entities.Articles
select new{
     article.ID_ART,
     article.Designation,
     article.BuyPrice,
     article.SellPrice,
     LastPrice = (from sale in article.Sales where sale.Date == article.Sales.Max(X => X.Date) select sale.Price).FirstOrDefault()==0?
     article.BuyPrice: (from sale in article.Sales where sale.Date == article.Sales.Max(X => X.Date) select sale.Price).FirstOrDefault()
     }

最佳答案

var result = from article in db.Entities.Articles
    let lastPrice = (from sale in article.Sales
                     orderby sale.Date descending
                     select sale.Price).FirstOrDefault()
    select new
    {
        article.ID_ART,
        article.Designation,
        article.BuyPrice,
        article.SellPrice,
        LastPrice = lastPrice ==0 ? article.BuyPrice : lastPrice
    }

关于c# - 卡在linq查询中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11715917/

10-13 06:39