Data Comparison Entity Framework asp.net mvc

0

I need to get the value and quantity in stock of a given product according to your Id. For debug the product id is arriving correctly, but when I assign the values to the table fields I am having a conversion error. / p>

        // POST: Pedidos/Create
    [HttpPost]
    public ActionResult Create(Pedido model)
    {
         //pego a quantidade do produto de acordo com id
        var qtdEstoque = db.Estoque.Where(p => p.ProdutoId == model.ProdutoId).Select(p => p.Quantidade);
        //pego preço de acordo com id
        var precoUnitario = db.Produto.Where(p => p.Id == model.ProdutoId).Select(p => p.Preco);

        model.PrecoUnidade = Convert.ToDecimal( precoUnitario);
        model.Quantidade = Convert.ToInt32(qtdEstoque);

        if (ModelState.IsValid)
        {
            db.Pedido.Add(model);

            db.SaveChanges();
        }


        ViewBag.ClienteId = new SelectList(db.Cliente.ToList(), "Id", "Nome");
        ViewBag.ProdutoId = new SelectList(db.Produto.ToList(), "Id", "Nome");

        return View(model);

    }

    [Table("Pedido")]
public class Pedido
{
    public int Id { get; set; }

    public int ClienteId { get; set; }

    public int ProdutoId { get; set; }

    public int Quantidade { get; set; }

    public decimal PrecoUnidade { get; set; }

    [ForeignKey("ProdutoId")]
    public virtual Produto Produto { get; set; }

    [ForeignKey("ClienteId")]
    public virtual Cliente Cliente { get; set; }

}
    
asked by anonymous 16.02.2018 / 22:33

1 answer

0

It looks like this:

            Estoque estoque = db.Estoque.Where(x => x.ProdutoId == model.ProdutoId).FirstOrDefault();
        int qtdEstoque = estoque.Quantidade;

        Produto produto = db.Produto.Where(x => x.Id == model.ProdutoId).FirstOrDefault();
        decimal precoUnitario = produto.Preco;

        model.Quantidade = qtdEstoque;
        model.PrecoUnidade = precoUnitario;
    
16.02.2018 / 23:29