Минималистский подход LINQ - System.NullReferenceException

Мне интересно, можно ли заставить это работать:

product.PrimaryImage = db.ProductImages
    .Where(p => p.Product.ID == product.ID)
    .OrderBy(p => p.Order ?? 999999)
    .ThenBy(p => p.ID)
    .FirstOrDefault()
    .Name;
db.SaveChanges();

Это работает, пока не будет больше изображений для этого продукта в этот момент он выдает ...

System.NullReferenceException: Object reference not set to an instance of an object.

Я исправил это, но я предпочел бы сохранить его как можно меньше и остаться в Linq, поэтому надеялся, что есть способ заставить мою начальную инструкцию работать.

Уродливое исправление:

ProductImages primaryProductImage = db.ProductImages.Where(p => p.Product.ID == product.ID).OrderBy(p => p.Order ?? 999999).ThenBy(p => p.ID).FirstOrDefault();
string primaryImage = (primaryProductImage != null) ? primaryProductImage.Name : null;
product.PrimaryImage = primaryImage;
db.SaveChanges();
5
задан Oppdal 25 November 2011 в 18:22
поделиться