极简LINQ方法- System.NullReferenceException
本文关键字:System NullReferenceException 方法 LINQ 极简 | 更新日期: 2023-09-27 18:15:50
我想知道是否有可能让这个工作:
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();
试试这个:
product.PrimaryImage = db.ProductImages
.Where(p => p.Product.ID == product.ID)
.OrderBy(p => p.Order ?? 999999)
.ThenBy(p => p.ID)
.Select(p => p.Name)
.FirstOrDefault();