MVC e EF - Como chamar método e persistir

24/06/2013

0

Tenho uma aplicação de testes e criei um View create e no controller Home, coloquei meu código no ActionResult Create. Bem, o que passa é que eu não consigo pegar na minha Models(já criei uma classe para persistência) essa classe de persistência com seus devidos métodos e gravar no BD. Estou pesquisando na net, mas se alguém puder me ajudar, agradeço desde então.
Pjava

Pjava

Responder

Posts

24/06/2013

Pjava

Pesquisei e encotrei isso, mas comigo dá erro. Abaixo minha classe de contexto

public class FuncContexto: DbContext
{
public DbSet<Funcionario> funcionarios { get; set; }
public DbSet<Estado> estados { get; set; }
}

e minha controller


public class HomeController : Controller
{
FuncContexto fcontex = new FuncContexto();

public ActionResult Index()
{
return View(fcontex.funcionarios.ToList());
}

[HttpPost]
public ActionResult Create(Funcionario _func)
{
try
{
if(!ModelState.IsValid)
return View();

fcontex.funcionarios.Add(_func);==> Aqui dá o erro
fcontex.SaveChanges();

return RedirectToAction("Index");
}
catch
{
return View();
}
}

public ActionResult Create()
{
return View(new Funcionario());
}

...

Abaixo os erros

Argument 1: cannot convert from 'Teste.Funcionario' to 'Teste.Models.Funcionario'

e esse

The best overloaded method match for 'System.Data.Entity.DbSet<Teste.Models.Funcionario>.Add(Teste.Models.Funcionario)' has some invalid arguments

Responder

24/06/2013

Pjava

Descobri, depois de tanto bater a cabeça. É que no meu projeto havia um arquivo edmx e criei uma classe com o mesmo nome de uma entidade, por isso o erro, pois ele não sabia que entidade usar, se do edmx ou da classe. Removi o edmx e agora não deu erro, mas também não grava no BD. Não dá erro, mas não grava pelo código que eu fiz copiando da net, nesse link

http://weblogs.asp.net/andrebaltieri/archive/2011/01/18/criando-uma-aplica-231-227-o-asp-net-mvc-com-ef-code-first-development.aspx
Responder

25/06/2013

Pjava

Eu removi o edmx apenas para testar o erro. Já refiz o edmx e renomeei a classe. Ainda não consegui. Fiquei até tarde da noite e como não havia conseguido nada, estou agora pela manhã recomeçando. Fiz exatamente conforme o link passado. Uso VS2012 e MVC 4.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar