Usuário com melhor resposta
Uso EDMX ou CodeFirst?

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
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
-
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
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 -
-
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- Editado Paulo César Viana quarta-feira, 9 de novembro de 2011 21:49
-
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
-
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
-
-