« Voltar
em .net banco de dados entity framework

Qual técnica utilizar com o Entity Framework: Code First, Database First ou Model First?.

Muitos desenvolvedores que estão começando com Entity Framework ficam um pouco perdidos com esses termos e não sabem muito bem qual técnica utilizar.

Afinal, qual a diferença entre as 3?

Database First

Essa técnica é utilizada quando você quer usar o Entity Framework com um banco de dados que já existe. O Entity Data Model(EDM) é gerado a partir das tabelas do seu banco de dados.

O principal benefício de usar essa técnica é que, se o banco já está criado, você perderá menos tempo escrevendo a camada de acesso a dados.
Você cria o modelo em cima do que já existe e aí vai atualizando e modificando de acordo com a sua necessidade.

É essa técnica é legal quando:
-você estiver trabalhando com bancos de dados/sistemas legados;
-você trabalhar em uma equipe em que DBAs são responsáveis por modelar o banco de dados e depois os desenvolvedores irão fazer o sistema "em cima" do banco. Existem empresas que por N razões mantém as regras de negócio no banco em procedures, triggers, functions e etc e a aplicação é apenas uma "casca" que faz chamadas ao banco, onde está a lógica de verdade.

Code First

Esse caso é basicamente o oposto do Database First: todos os modelos de domínio representados através de classes, que são criadas antes do banco de dados. Essas classes vão resultar no nosso Entity Data Model e o banco de dados será criado a partir desse modelo.

Essa técnica é legal quando:
-o banco de dados for apenas um lugar para armazenar dados mesmo, ou seja: quando não houver lógica de negócio no banco de dados;
-o banco de dados não será alterado manualmente por desenvolvedores e/ou DBAs. Quando as classes de modelo forem modificadas, o banco de dados irá refletir essas modificações.

Model First

Essa técnica é bem parecida com a Code First. A diferença básica é que: ao invés de escrevermos o código de nossas classes, nós utilizamos uma ferramenta visual(o Entity Framework Designer) para modelar o EDM e em baseado nele o banco de dados e as classes serão geradas.

Não vejo uma razão específica para você usar essa técnica, você vai escolher ela se quiser usar a ferramenta visual de modelagem mesmo.


Quer ganhar 15% de desconto pra gastar na Casa do Código e ainda ficar em dia com as minhas postagens e outras promoções e sorteios legais? Assina minha newsletter: http://gabsferreira.com/newsletter/ (:

Se quiser, curta minha página no Face também! O endereço é https://www.facebook.com/devgabsferreira

comments powered by Disqus