2016-11-11 2 views
0

Я делаю корзину покупок, после нажатия Add to cart пользователь перенаправляется на страницу, которая принимает id продукта в качестве параметра GET, и на основании этого я хочу получить его цену, которая Мне нравится так с EF:Получите десятичное число из таблицы

decimal price = Convert.ToDecimal(db.Products.Where(x => x.Id == productId).Select(x => x.Price)); 

Однако, когда я нажимаю Add to cart и ударил URL перенаправляет, я получаю эту ошибку в VS:

Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery`1[System.Decimal]' to type 'System.IConvertible'. 

Я новичок в .NET, так что я мог бы не быть ретритом по правильной цене.

ответ

2
var result = db.Products.FirstOrDefault(x => x.Id == productId); 

decimal? price = result?.Price; 

Возьмите продукт с конкретным ID и после этого принять его цену, если существующий. Этот синтаксис действителен, если вы используете C# 6.0, если вы используете предыдущую версию C#: if(result !=null) price = result.Price

Смежные вопросы