Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Erro ao Passar Parâmetros Por Post

Pessoal estou com problemas ao passar os parâmetros do meu form por POST , vou poder meus arquivos e o erro que esta dando Meu Form.cshtml

<form action="/Produto/Adiciona" method="post">
<label for="nome">Nome:</label>
<input id="nome" name="produto.Nome" />

<label for="preco">Preço:</label>
<input id="preco" name="produto.Preco" />

<label for="quantidade">Quantidade:</label>
<input id="quantidade" name="produto.Quantidade" />

<label for="descricao">Descricao:</label>
<input id="descricao" name="produto.Descricao" />

<label for="categoria">Categoria:</label>
<input id="categoria" name="produto.CategoriaId" />

<input type="submit" value="Cadastrar" />

// Meu Produto.Controller
[HttpPost]
public ActionResult Adiciona(Produto produto)
{
 ProdutosDAO dao = new ProdutosDAO();
 dao.Adiciona(produto);

return View();
}

Quando preencho o formulario e peço para enviar ele abre uma exceção dentro do Visual Studio e me remete ao método Adiciona dentro do produtoDAO.cs

public void Adiciona(Produto produto)
{
 using (var context = new EstoqueContext())
{
context.Produtos.Add(produto);
context.SaveChanges(); // Aqui está o problema 
}
}

Olha a mensagem que me retorna no SaveChanges

DbUpdateException was unhandled by User Code An exception of type="System.Data.Entity.Infraestructure.DbUpdateException" occured in EntittyFramework.dll was not handled in user code .

Não estou sabendo onde posso estar errando ,alguem pode me ajudar ?

7 respostas

Se eu não estou engando você criar o EstoqueContexto dentro do arquivo Global.asax, assim todas as vezes que você precisar ele estará disponível para toda a aplicação.

Uma boa dica é você assistir ao curso de EntityFramework da Trilha C#

http://www.alura.com.br/course/entity-framework

Na primeira aula é mostrado como você pode configurar o arquivo Global.asax.

Espero ter ajudado!

Beleza meu amigo vou olhar isso então !

Cara esse erro ai é porque seu contexto está diferente do seu banco de de dados, vai no seu contexto clica duas vezes nele, ai abre a Barra de Ferramentas>Model View> depois clique no seu contexto com botão direito e escolha a opção (Update From DataBase).

Raniel me desculpe a ignorancia , mas me dê mais detalhes , abri aqui o meu arquivo EstoqueContext.cs como faço para realizar o procedimento que voce descreve acima ?

Olha esse print que eu fiz: Print da tela

Beleza não sabia dessa ai ainda não kkk !!

solução!

Mais deu certo amigo?