Projeto para estudos em .NET Core 5, utilizando as melhores práticas e organização.
O projeto esta separado por outros projetos e pastas:
- 01.WebApi
- 02.Manager
- 03.Data
- 04.Core
- 05.Tests
- Microsoft.EntityFrameworkCore (5.0.14) - Biblioteca para mapeado relacional de objeto (ORM).
- Microsoft.EntityFrameworkCore.Design (5.0.14) - Biblioteca que habilita as migrations e outras ferramentas.
- Microsoft.EntityFrameworkCore.Tools (5.0.14) - Biblioteca que habilita comandos no console para a geração das migrations.
- Microsoft.EntityFrameworkCore.SqlServer (5.0.14) - Biblioteca para ter acesso e manipular o banco de dados SQL SERVER.
- FluentValidation.AspNetCore (10.3.6) - Biblioteca de validação para .NET que usa uma interface fluente e expressões lambdas para criar regras de validação distribuída.
- AutoMapper (11.0.1) - Biblioteca construída para resolver o mapeamento de um objeto para outro (DTO).
- AutoMapper.Extensions.Microsoft.DependencyInjection (11.0.0) - Biblioteca para efetuar a injeção de dependência do AutoMapper.
No projeto WebApi no arquivo appsettings.json, incluir a string de conexão conforme exemplo abaixo:
"ConnectionStrings": { "dbConnection": "Data Source=COMPUTER\SQLEXPRESS;Initial Catalog=nomeDoBanco;Integrated Security=True" }
Depois incluir em Startup no método ConfigureServices:
services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("dbConnection")));
Para gerar as migrations e logo criar/atualizar a tabela no banco de dados, segue os comandos abaixo:
- add-migration nome_da_migration (Gera a migration)
- update-database (Atualiza o banco de dados gerando a estrutura e tabela)
- remove-migration (Às vezes, você adiciona uma migration e percebe que precisa fazer alterações adicionais ao modelo do EF antes de aplicá-lo para remover a última migration)
- get-migration (Listar todas as migrations existentes)
Para efetuar a injeção de dependência no projeto, depois de criado as interfaces e os respositories, devem ser incluídas no Startup do projeto WebApi, no método ConfigureServices.
Ex: services.AddScoped<IClienteRepository, ClienteRepository>();
Feito por Jaime Barbosa - Linkedin