gpt4 book ai didi

c# - 极简 LINQ 方法 - System.NullReferenceException

转载 作者:太空狗 更新时间:2023-10-29 22:28:00 24 4
gpt4 key购买 nike

我想知道是否有可能让它工作:

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();

关于c# - 极简 LINQ 方法 - System.NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8272316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com