linq默认值,如果没有记录

时间:2014-03-13 05:53:45

标签: c# asp.net .net asp.net-mvc linq

进行拍卖我想在没有出价的情况下将当前价格分配给起始价格。这是我的疑问。我怎么能这样做?

var model = db.Items
            .Where(i => i.EndDate > DateTime.Now)
            .Select(i => new ViewItemViewModel
            {
                ItemId = i.ItemId,
                Title = i.Title,
                EndDate = i.EndDate,
                Description = i.Description,
                CurrentPrice = i.Bids.OrderByDescending(b => b.Price).First().Price
            }).ToList();

这是重要的部分

CurrentPrice = i.Bids.OrderByDescending(b => b.Price).First().Price

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用内联if(你可以在linq中执行此操作)

CurrentPrice = i.Bids.Any() ? i.Bids.OrderByDescending(b => b.Price).First().Price : 27

注意如果您要返回数据库(例如使用EF),您可能希望使用FirstOrDefault(),因为First()未在EF linq中实现