none
MVC e EF - Como chamar método RRS feed

  • Pergunta

  • 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.
    segunda-feira, 24 de junho de 2013 21:09

Todas as Respostas

  • 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

    segunda-feira, 24 de junho de 2013 21:58
  • 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
    terça-feira, 25 de junho de 2013 01:03
  • Olá se não houver o edmx não irá gravar ou você criou suas tabelas via code behind

    [Tables("SuaTabela")]

    ........

    terça-feira, 25 de junho de 2013 02:23
  • 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.
    terça-feira, 25 de junho de 2013 10:53
  • Mas qual o erro que é apontado agora....
    terça-feira, 25 de junho de 2013 16:06