Este artigo pressupõe que você já utilizou o Code First para criar um novo banco de dados. O código abaixo demonstra como isso pode ser feito:
class Program
{
static void Main(string[] args)
{
using (var contexto = new EscolaContexto())
{
var turma = new Turma
{
Id = 1,
Nome = "Universidade de Negócios de Chongqing",
Codigo = "CTBU"
};
contexto.Turmas.Add(turma);
contexto.SaveChanges();
var consulta = from t in contexto.Turmas select t;
foreach (var item in consulta)
{
Console.WriteLine(item.Nome);
}
Console.ReadLine();
}
}
}
public class Aluno
{
[Key]
public int Id { get; set; }
public string Nome { get; set; }
public string Matricula { get; set; }
public int TurmaId { get; set; }
public virtual Turma Turma { get; set; }
}
public class Turma
{
[Key]
public int Id { get; set; }
public string Codigo { get; set; }
public string Nome { get; set; }
public virtual ICollection<aluno> Alunos { get; set; }
}
public class EscolaContexto : DbContext
{
public EscolaContexto() : base("name=DbConnect") { }
public DbSet<aluno> Alunos { get; set; }
public DbSet<turma> Turmas { get; set; }
}
</turma></aluno></aluno>
Esse código funciona corretamente e produz o resultado esperado. No entanto, você pode ter notado que os nomes das tabelas no banco de dados terminam com "s", como "Turmas" e "Alunos". Isso é padrão do Entity Framework, que pluraliza automaticamente os nomes das tabelas com base nos nomes das classes.
Introdução às Migrações Code First
Quando modificamos o modelo de dados, também precisamos atualizar o esquema do banco de dados. Para isso, usamos uma funcionalidade chamada Code First Migrations, ou simplesmente migrações.
As migrações são um cojnunto ordenado de etapas que descrevem como atualizar (e reverter) o esquema do banco de dados. Cada etapa é chamada de "migração" e contém código que define as alterações a serem aplicadas.
Passo 1: Ativar migrações
Para ativar as migrações no contexto EscolaContexto, siga os passos:
- Vá para Ferramentas → Gerenciador de Pacotes NuGet → Console do Gerenciadorr de Pacotes
- No console, execute o comando:
Enable-Migrations
Após executar esse comando, uma nova pasta chamada Migrations será adicionada ao projeto. Ela contém dois arquivos:
- Configuration.cs — contém as configurações usadas pelas migrações. Neste exemplo, não será necessário alterar esse arquivo, mas ele pode ser usado para incluir dados iniciais, registrar provedores de benco de dados ou modificar o namespace das migrações.
- <timestamp>_InitialCreate.cs — representa a migração inicial, ou seja, as alterações necessárias para criar as tabelas do zero. O Entity Framework já registra que essa migração foi aplicada no banco de dados. O prefixo de data no nome do arquivo é usado para ordenar as migrações.
Passo 2: Modificar o modelo
Agora, vamos alterar o modelo. Adicione uma nova propriedade chamada Endereco à classe Aluno:
public class Aluno
{
[Key]
public int Id { get; set; }
public string Nome { get; set; }
public string Matricula { get; set; }
public int TurmaId { get; set; }
public string Endereco { get; set; } // Nova propriedade
public virtual Turma Turma { get; set; }
}