PriceOffer
属性可以为十进制
List<TopRated> TopRated = (from review in db.ProductReviews
group review by review.ProductID into product
select new TopRated
{
ProductName = product.Select(p => p.Products.Name).FirstOrDefault(),
Price = product.Select(p => p.Products.Price).FirstOrDefault(),
PriceOffer = product.Select(p => p.Products.PriceOffer).FirstOrDefault(),
ProductId = product.Key,
AverageRating = product.Average(p => p.Rating)
}).ToList();
答案 0 :(得分:8)
要从decimal?
转换为decimal
,请尝试Value
:
decimal? d = 0;
decimal d1 = d.Value;
如 @Tim 所述,如果decimal?
没有值,则会抛出异常。
根据您的逻辑,您可以尝试类似
的内容decimal d1 = d.HasValue? d.Value: 0;
或只是
decimal d2 = d ?? 0;
答案 1 :(得分:0)
可能是这个产品。选择(p =&gt; p.Products.PriceOffer).FirstOrDefault()返回一个十进制类型。您不能键入十进制到可为空的十进制数。
在这里你可以找到这样一个演员的例子: How can I convert decimal? to decimal