Configurando Migrations no EF Core com MySql

O EntityFramework é um ORM o qual permite realizar as operações básicas de CRUD utilizando as entidades. Ele consegue mapear as entidades e relacionamentos definidos no modelo para um banco de dados.

Essa interação se dá pela classe DbContext, o qual administra os objetos entidades em tempo de execução.
Levando em consideração o projeto descrito em um artigo anterior vamos, primeiramente, instalar os seguintes pacotes:
- Microsoft.EntityFrameworkCore.Tools
Auxilia na criação do banco de dados - Microsoft.EntityFrameworkCore.Design
Auxilia na modelagem do banco de dados - Pomelo.EntityFrameworkCore.MySql
Auxilia na utilização do EF Core (persistência no banco de dados)
Feito isso, cria-se, primeiramente, uma classe para definir algumas atribuições da entidade e das propriedades da mesma, como o nome da tabela que será mapeado, qual atributo será chave primária e quais os nomes das colunas das propriedades que serão mapeadas.
Em seguida, desenvolve-se a classe de contexto, que conterá o controle e configurações necessárias para conectar, criar e realizar operações no banco de dados.
Após isso, faz-se uma injeção de dependência da classe contexto na classe Startup.cs do projeto Modelo.Application.
A aplicação está pronta para trabalhar com o EntityFramework conectando no MySql, contudo necessita-se utilizar o Migrations. Comparando com o, já depreciado, Asp.Net MVC, o comando Enable-Migrations está obsoleto. Para habilitar o mesmo, basta adicionar uma Migration utilizando o seguinte comando no Package Manager Console:
— Add-Migration VersaoInicial

Após executar este comando, será gerado um código referente às alterações que foram identificadas. Para persistir essas alterações, necessita-se executar o seguinte comando:
— Update-Database
Por fim, as modificações já serão persistidas no banco de dados. E para reverter a versão executada no Migrations, basta executar o seguinte código:
— Remove-Migration
Conclusão
Percebe-se que é muito simples a utilização do EF Core no MySql utilizando o Migrations. Além de ser extremamente útil gerenciar o modelo de dados e o esquema do banco de dados a partir do código, empregando o Code-First para isso, pois tem-se todo um histórico de todas as alterações feitas na base de dados, facilitando, assim, a rastreabilidade.