无法隐式转换类型'decimal?'到'十进制'

时间:2015-10-09 18:26:15

标签: c#

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

2 个答案:

答案 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