none
Uso EDMX ou CodeFirst? RRS feed

  • Pergunta

  • Boa noite.

    Preciso que me esclareçam quanto ao uso de EDMX (uso grafico) ou CodeFirst.

    • Qual a vantagem e desvantagem de cada um?
    • Estou na fase de modelagem da minha aplicação, usando a ferramenta case Enterprise Architect e gerando as classes através dela.

    Pensei em importar estas classes geradas para a camada Model da aplicação.

    • Estas classes são na verdade os POCO?
    • Estou no caminho certo ou há alternativas mais profissionais?

    • Editado Selma Marion quarta-feira, 9 de novembro de 2011 20:37
    quarta-feira, 9 de novembro de 2011 20:36

Respostas

  • Selma,

    A grande diferença é que o EDMX fica vinculado ao banco de dados, ou seja, para cada tipo de banco de dados (SQL, Oracle, MySql) você vai precisar de um EDMX.

    O Codefirst foi criado para ser multibanco, usando somente a string de conexão para identificar o tipo do banco, e se você tiver necessidade de ver o modelo graficamente, pode usar o EF PowerTools.

    A classe POCO é totalmente desvinculada do banco de dados, você pode gerar sem problemas pelo EA, mas certifique-se que a classe está sem nenhum tipo de atributo que a prenda a um banco ou modelo específico.

    []s,


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    • Marcado como Resposta Selma Marion quinta-feira, 10 de novembro de 2011 10:13
    quinta-feira, 10 de novembro de 2011 03:25
  • O EDMX não fica unicamente vinculado ao banco. Você pode criar um EDMX vazio e criar todas as classes, e criar o banco depois a partir do seu EDMX.

    A grande vantagem que eu vejo, é a liberdade que vc tem para mexer em suas classe com o modelo CodeFirst. Para projetos grandes, fica ruim se duas pessoas quiserem adicionar uma classe ao projeto, sendo um arquivo só. Com o modelo de classes cada um cuida da sua classe.


    Quem sabe um dia os DataSets se extinguirão?
    • Marcado como Resposta Selma Marion quinta-feira, 10 de novembro de 2011 21:43
    quinta-feira, 10 de novembro de 2011 18:32

Todas as Respostas

  • Esse assunto pode render muito.... Eu gosto de Ter o EDMX e criar minhas classes para interagir com cada objeto do modelo. Classes que fazem alguma coisa e não classes POCO....

     


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    quarta-feira, 9 de novembro de 2011 20:54
  • É justamente essa discussão que eu estou interessada.

    Vamos ver outras opiniões.

    quarta-feira, 9 de novembro de 2011 21:03
  • Selma,

    A grande questão é que uma série de coisas deve ser analisada: o tamanho do projeto, complexidade...etc

    As vezes não vale a pena você criar uma estrutura enorme aplicando alguns padrões, como DDD para coisas simples. Inclusive tem muita gente que prefere o Nhibernate ao EF. O fato é que o uso destes modelos ajuda em muito.


    --
    Marque as respostas e ajude a melhorar a busca do fórum. pcfviana@gmail.com
    quarta-feira, 9 de novembro de 2011 21:47
  • Selma,

    A grande diferença é que o EDMX fica vinculado ao banco de dados, ou seja, para cada tipo de banco de dados (SQL, Oracle, MySql) você vai precisar de um EDMX.

    O Codefirst foi criado para ser multibanco, usando somente a string de conexão para identificar o tipo do banco, e se você tiver necessidade de ver o modelo graficamente, pode usar o EF PowerTools.

    A classe POCO é totalmente desvinculada do banco de dados, você pode gerar sem problemas pelo EA, mas certifique-se que a classe está sem nenhum tipo de atributo que a prenda a um banco ou modelo específico.

    []s,


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    • Marcado como Resposta Selma Marion quinta-feira, 10 de novembro de 2011 10:13
    quinta-feira, 10 de novembro de 2011 03:25
  • O EDMX não fica unicamente vinculado ao banco. Você pode criar um EDMX vazio e criar todas as classes, e criar o banco depois a partir do seu EDMX.

    A grande vantagem que eu vejo, é a liberdade que vc tem para mexer em suas classe com o modelo CodeFirst. Para projetos grandes, fica ruim se duas pessoas quiserem adicionar uma classe ao projeto, sendo um arquivo só. Com o modelo de classes cada um cuida da sua classe.


    Quem sabe um dia os DataSets se extinguirão?
    • Marcado como Resposta Selma Marion quinta-feira, 10 de novembro de 2011 21:43
    quinta-feira, 10 de novembro de 2011 18:32
  • Danimar, adorei sua resposta.
    quinta-feira, 10 de novembro de 2011 21:45
  • Danimar, adorei sua resposta.
    Obrigado.

    Quem sabe um dia os DataSets se extinguirão?
    sexta-feira, 18 de novembro de 2011 15:51