Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

O Code First é uma funcionalidade incluída na versão 4.1 do Entity Framework. Esse novo recurso permite o mapeamento/persistência de classes POCO e geração de base de dados a partir da estrutura dessas classes.

Em que situação o tema é útil

Para desenvolvedores que desejam criar seus modelos de classes sem utilizar uma estrutura pré-existente de um banco de dados ou, que não deseja ter suas classes de negócio herdando de classes específicas do Entity Framework, ou seja, criar classes POCO (Plain Old C# Objects) e utilizá-las.

Entity Framework – Code First

O artigo inicia com a definição do Entity Framework, a especificação dos seus padrões disponíveis e as vantagens de cada padrão. Após a apresentação é abordado o conceito do padrão Code First, assim como suas características e funcionalidades disponíveis. São apresentados dois modos de utilização do padrão Code First, sendo o primeiro criando um novo Banco de Dados e o segundo mostrando um mapeamento com banco de dados existente. Após a apresentação dos conceitos é realizado uma aplicação simples utilizando o Code First como exemplo.

O Entity Framework é uma ferramenta ORM da Microsoft. Em suas primeiras versões, era muito contestado por desenvolvedores já que uma de suas característica era de ser uma ferramenta muito “automática”, e assim gerar códigos desnecessários e muitas vezes pouco performáticos. Apesar de alcançar o objetivo inicial, que era de fornecer uma ferramenta de ORM nativa aos desenvolvedores .NET, estes ainda queriam algo mais moldável às suas necessidades, ou quem sabe algo mais próximo ao que já estava disponível no mercado(como o NHibernte). Essa flexibilidade foi incluída pela Microsoft na versão 4.1 do Entity Framework.

No padrão Code First é possível determinar no projeto do aplicativo as definições de tabelas, chaves primárias, relacionamentos e demais informações que devem estar presentes no banco de dados que irá armazenar as informações do sistema. Além de permitir a definição de todas estas características(que veremos mais detalhadamente a seguir), o padrão Code First também permite que o banco de dados seja criado caso mesmo não exista ou então, permitir a utilização de um banco de dados previamente criado.

Definindo o mapeamento do modelo de dados

Quando você cria suas classes de domínios, já tem a possibilidade de definir alguns padrões que o Entity Framework Code First utiliza.

Por padrão, quando você utiliza essas classes(veja um exemplo na Listagem 1), para gerar um banco de dados, o Entity Framework tentará aplicar seus padrões de nomenclatura. No caso, ira criar um banco de dados, com base no seu modelo de classes, ou seja, os nomes das mesmas serão as tabelas e as propriedades serão os campos. Já quando você informa um banco de dados (que veremos mais adiante), o EF verifica se o modelo criado pelas classes do projeto está de acordo com o modelo que está presente nesse banco de dados. Ao realizar esta tarefa, muitas vezes o EF cria algumas nomenclaturas um tanto estranhas, principalmente quando estamos criando classes nomeadas em português, como é o caso da classe Produto, onde o EF criará uma tabela chamada Produtos.

Para contornar essa situação, você pode realizar o mapeamento das classes utilizando o conceito de Data Annotations, também do Code First. Esta funcionalidade permite que você defina informações que deverão ser utilizadas pelo Entity Framework no momento que este realizar a criação das tabelas. Através destes atributos, você tem a possibilidade de definir o nome da tabela, dos campos, o seu tamanho, entre outros.

...
Quer ler esse conteúdo completo? Tenha acesso completo