Resumo : neste tutorial, você começará a usar o Entity Framework Core e aprenderá como configurar um projeto do Entity Framework Core.
Criando um projeto EF Core
Primeiro, crie um novo projeto de aplicativo de console chamado HR.
Segundo, instale dois pacotes NuGet:
- Microsoft.EntityFrameworkCore.SqlServer – este pacote é o provedor de banco de dados Microsoft SQL Server para Entity Framework Core que permite trabalhar com SQL Server.
- Microsoft.EntityFrameworkCore.Tools – este pacote contém as ferramentas necessárias para trabalhar com EF Core, como comandos de migração.
Definindo modelos
Primeiro, crie uma Department
classe que represente os departamentos do sistema de RH:
namespace HR;
public class Department
{
public int Id { get; set; }
public string Name {get; set; }
}
Linguagem de código: C# ( cs )
Segundo, crie uma Employee
classe que represente os funcionários no sistema de RH:
namespace HR;
public class Employee
{
public int Id { get; set; }
public required string FirstName { get; set; }
public required string LastName { get; set; }
public required DateTime JoinedDate { get; set; }
public required decimal Salary { get; set; }
public Department? Department { get; set; }
}
Linguagem de código: C# ( cs )
A Employee
classe tem cinco propriedades, incluindo , Id
, FirstName
, , e . A propriedade faz referência à classe.LastName
JoinedDate
Salary
Department
Department
Department
Criando classe DbContext
Primeiro, crie um novo arquivo chamado appsettings.json
no projeto. Ele appsettings.json
conterá uma string de conexão para um banco de dados local do SQL Server que vem com o Visual Studio por padrão:
{
"ConnectionStrings": {
"Local": "Data Source=(localdb)\\MSSQLLocalDB; Initial Catalog=HR"
}
}
Linguagem de código: texto simples ( texto simples )
Em segundo lugar, defina Copiar para saída do appsettings.json
arquivo como Copiar se for mais recente , para que o Visual Studio copie appsettings.json para o diretório de saída sempre que você alterar as configurações.
Terceiro, crie uma HRContext
classe que estenda a DbContext
classe:
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
namespace HR;
public class HRContext: DbContext
{
public DbSet<Employee> Employees { get; set;}
public DbSet<Department> Departments{ get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var connectionString = configuration.GetConnectionString("Local");
optionsBuilder.UseSqlServer(connectionString);
}
}
Linguagem de código: C# ( cs )
Na HRContext
aula:
- Defina dois
DbSet
incluindoEmployees
eDepartments
. - Substituindo o
OnConfiguring()
método daDbContext
classe. Dentro do método, pegue a string de conexão e passe-a para oUseSqlServer()
método doDbContextOptionsBuilder
objeto.
Criando uma migração e sincronizando-a com o banco de dados
Primeiro, abra o Package Manager Console (PMC) e use o Add-Migration
comando para criar uma nova migração:
Add-Migration Initial
Linguagem de código: texto simples ( texto simples )
Ele produzirá o seguinte:
Build started...
Build succeeded.
To undo this action, use Remove-Migration.
Linguagem de código: texto simples ( texto simples )
Se você observar o projeto, verá um novo diretório chamado Migrations
, que contém dois arquivos:
20230608032229_Initial.cs
– contém os métodos Up() e Down(). O método Up() cria os Funcionários e Departamentos enquanto o método Down() os elimina. O nome do arquivo começa com um carimbo de data/hora, seguido por um sublinhado (_) e o nome da migração.HRContextModelSnapshot.cs
– representa o estado atual do modelo de banco de dados. O EF Core usa as informações desse arquivo para gerar as instruções SQL apropriadas para atualizar o esquema do banco de dados.
Segundo, execute o Update-Database
comando no PMC para aplicar a migração ao banco de dados:
Update-Database
Saída:
Build started...
Build succeeded.
Applying migration '20230608032229_Initial'.
Done.
Linguagem de código: texto simples ( texto simples )
O Update-Database
comando cria um novo banco de dados caso ainda não tenha sido criado e aplica as alterações especificadas na 20230608032229_Initial.cs
migração para o banco de dados.
Neste exemplo, ele cria três tabelas:
__EFMigrationsHistory
– armazena o histórico de migração.Departments
– mapeia para aDepartment
classe do modelo.Employees
– mapeia para aEmployee
classe do modelo.
Ao exibir o banco de dados local do SQL Server, você verá o novo banco de dados e as tabelas criadas:
Adicionando dados à tabela Departamentos
Para adicionar uma ou mais linhas à Departments
tabela, você cria novos Department
objetos, adiciona-os ao Departments
DbSet da HRContext
classe e chama o SaveChanges()
método.
Modifique o Program.cs
programa para inserir três linhas na Departments
tabela usando o seguinte código:
using HR;
InsertDepartments();
static void InsertDepartments()
{
var departments = new List<Department>()
{
new Department {Name="Sales" },
new Department {Name="Marketing" },
new Department {Name="Logistics"},
};
using var context = new HRContext();
foreach (var department in departments)
{
context.Departments.Add(department);
}
context.SaveChanges();
}
Linguagem de código: C# ( cs )
Se você executar o programa e visualizar os dados da Departments
tabela, verá que o EF Core inseriu três linhas na Departments
tabela:
Consultando dados da tabela Departamentos
O programa a seguir obtém todos os dados da Departments
tabela e exibe o Id
e Name
de cada departamento no Console:
using HR;
SelectDepartments();
static void SelectDepartments()
{
using var context = new HRContext();
var departments = context.Departments.ToList();
foreach (var department in departments)
{
Console.WriteLine($"{department.Id} - {department.Name}");
}
}
Linguagem de código: C# ( cs )
Saída:
1 - Sales
2 - Marketing
3 - Logistics
Linguagem de código: texto simples ( texto simples )
Como funciona.
Primeiro, crie um novo HRContext
objeto para conectar-se ao banco de dados.
Segundo, chame o ToList()
método DbSet Department
e atribua o resultado à departments
variável.
Terceiro, repita os departamentos e exiba seu ID e nome no console.
Instalando as ferramentas elétricas EF Core
O EF Core Power Tools é uma ferramenta poderosa que ajuda você a economizar tempo ao trabalhar com o Entity Framework Core. Usaremos as ferramentas avançadas do EF Core para visualizar dados de entidade neste tutorial.
Aqui estão as etapas para instalar o EF Core Power Tools:
- Primeiro, selecione Extensões > Gerenciar extensões no Visual Studio.
- Em segundo lugar, pesquise EF Core Power Tools na caixa de pesquisa.
- Terceiro, clique no botão Download para fazer o download e instalá-lo.
Para visualizar os dados da entidade no projeto de RH, você pode clicar com o botão direito do mouse no projeto de RH e selecionar EF Core Power Tools > Add DbContext Diagram .
O Visual Studio reconstruirá o projeto e exibirá um diagrama da seguinte forma:
O diagrama ilustra as entidades Employee
e Department
seu relacionamento. Também mostra as propriedades de cada entidade em detalhes.
Resumo
- Instale Microsoft.EntityFrameworkCore.SqlServer e Microsoft.EntityFrameworkCore.Tools no projeto EF Core e use o EF Core Power Tool para facilitar o trabalho com o Entity Framework Core.