none
Entity Framework - Postgres RRS feed

  • Discussão Geral

  • Bom dia, 

    Estou tentando integrar o EF 5 com Postgres...estou usando npgsql

    Seguinte, tenho um pequeno exemplo: 

    meu dbcontext: 

        public class Banco: DbContext
        {
            public DbSet<Usuario> Usuarios { get; set; }
    
        }

    minha entidade : 

        public class Usuario
        {
            public int Id { get; set; }
            public string Nome { get; set; }
    
        }

    e meu teste:

            using (var banco = new Banco())
                {
                    var usuario = new Usuario();
                    usuario.Nome = "Rodrigo";
                    banco.Usuarios.Add(usuario); 
                    banco.SaveChanges();
                }

    pois bem...

    Ele parece conectar no banco ok, mas aí quando vai dar add, ele diz que o "banco" não existe...

    O EF não cria o banco pra mim? qual erro? :/ há muito pouco sobre ef + postgres...

    Aproveitando o tópico, antigamente ouvia muito sobre a performance do EF com outros bancos que não era o sql server...

    Hoje na versão 5, ou até mesmo na 6 há ainda esse problema?


    • Editado RodrigoCez segunda-feira, 7 de outubro de 2013 02:00
    segunda-feira, 7 de outubro de 2013 01:57

Todas as Respostas

  • Bom em pesquisas, vi que o driver do postgres(npgsql), não suporta a criação de banco de dados e schemas, o mesmo deve ser criado manualmente.

    Mas ainda ele não cria as tabelas...o que não seria problema do driver :/

    Há algum driver pago que faça esses procedimento de melhor forma que o npgsql ? Vi o da devart, mas gostaria de saber de alguém que usa, algum relato.

    Obrigado

    segunda-feira, 7 de outubro de 2013 14:21
  • Você deve trabalhar com DatabaseFirst no caso do Postgres e gerar um EDMX da sua base de dados.

    Vai lhe poupar muita dor de cabeça.

    terça-feira, 8 de outubro de 2013 01:25
    Moderador
  • Pois é João, eu na verdade já desisti do EF, eu venho do Nhibernate e queria conhecer um pouquinho do Entity, mas logo vi de cara o quanto é imaturo ainda

    Só funciona muito bem com o Sql Server, demais bancos é péssimo.

    Ter que escrever migrations toda vez que se muda algo na classe? muito trabalhoso também, o Nhibernate me atualiza a base sozinho.

    Eu na verdade queria para utilizar com asp.net identity, o que foi todo escrito usando EF, mas não vale a pena...vou reescrever as classes do asp.net identity usando Nhibernate mesmo.

    Obrigado pela resposta, abraço

    terça-feira, 8 de outubro de 2013 11:52
  • Nao concordo com sua colocacao que eh imaturo.

    Os conectores dos outros bancos eh que nao atendem as especificacoes do code first.

    Utilizo com MySQL, SQLite, SQLServer e funciona bem a contento para outros bancos tambem.

    Quanto ao migrations nao precisa mudar nada quando se muda uma classe.

    E mesmo com SQLServer nao recomendo code first. Prefiro estruturar a base de dados antes de codificar. 

    terça-feira, 8 de outubro de 2013 16:29
    Moderador