ASP .NET Core 5 - CRUD com EF Core 5 usando imagens
Hoje vamos iniciar a criação de um projeto web usando a ASP .NET Core 5.0 onde vamos realizar um CRUD com a ajuda do EF Core 5.0 e também mostrar como tratar imagens. |
Como vamos usar as versões do .NET Core 5.0, EF Core 5.0 e ASP .NET Core 5.0 a primeira coisa a fazer é atualizar o seu ambiente para o .NET 5.
Para isso acesse os links abaixo e faça o download e a instalação das seguintes pacotes:
Vamos criar um protótipo para gerenciar eventos on-line com atuação de palestrantes onde vamos gerenciar as informações básicas do palestrante incluindo a sua foto.
Para gerenciar as informações vamos usar o EF Core 5.0 na abordagem Code-First.
Mãos a obra..
Criando o projeto ASP .NET Core MVC
Abra o VS 2019 Community e crie um projeto usando o template ASP.NET Core Web Application;
A seguir vamos configurar o projeto informando o nome do projeto e localização e nome da solução conforme mostrado na figura a seguir:
Continuando selecione .NET Core e ASP .NET Core 5.0 e o template ASP .NET Core Web App(Model-View-Controller) :
Estamos definindo o HTTPs e habilitando a compilação em tempo de execução do Razor.
Ao final teremos o projeto MVC com a estrutura padrão gerada e pronta para ser utilizada.
Incluindo os pacotes do EF Core 5
Vamos incluir no projeto as referência para os seguintes pacotes do EF Core:
Podemos fazer isso via menu Tools do VS 2019 ou na janela do Package Manager Console usar o comando: install-package<>
Ao final o arquivo de projeto Palestras.csproj deverá apresentar as seguintes referências:
Definindo o modelo de domínio e o contexto
Na pasta Models vamos criar as entidades que vão representar o nosso modelo de domínio. Vamos usar classes POCO totalmente anêmicas e sem lógica alguma pois iremos usá-los apenas como DTO. Vamos criar apenas uma classe.
1- Palestrante
using System;
using System.ComponentModel.DataAnnotations;
namespace Palestras.Models
{
public class Palestrante
{
[Key]
public int Id { get; set; }
[Required]
[StringLength(100)]
public string Nome { get; set; }
[Required]
[StringLength(200)]
public string Qualificacao { get; set; }
[Required]
[StringLength(200)]
public int Experiencia { get; set; }
[Required]
[DataType(DataType.Date)]
[Display(Name = "Data")]
public DateTime DataPalestra { get; set; }
[Required]
[DataType(DataType.Time)]
[Display(Name = "Hora")]
public DateTime HoraPalestra { get; set; }
[Required]
[StringLength(250)]
public string Local { get; set; }
[Required]
public string Foto { get; set; }
}
}
|
A seguir precisamos criar a classe de contexto que vai herdar de DbContext onde vamos mapear a entidade para tabela no SQL Server.
using Microsoft.EntityFrameworkCore;
namespace Palestras.Models
{
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) :
base(options)
{
}
public DbSet<Palestrante> Palestrantes { get; set; }
}
}
|
A seguir vamos registrar o contexto como um serviço no arquivo Startup no método ConfigureServices :
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddControllersWithViews();
}
|
E agora precisamos incluir no arquivo appsettings.json a string de conexão do banco de dados que iremos criar:
|
Agora já temos tudo pronto para aplicar a migração.
Assim abra uma janela no Nuget Package Manager e digite os comandos:
add-migration Inicial
update-database
Voilá, agora já temos o banco de dados EventosDB e a tabela Palestras criados no SQL Server.
Gerando o controlador via Scaffold
Vamos agora gerar o controlador via Scaffold de forma a obter além do controlador as respectivas views.
Para isso clique com o botão direito do mouse sobre a pasta Controllers e selecione Add-> New Scaffolded Item;
Na próxima janela marque a opção - MVC Controller with views, using Entity Framework e clique em Add;
Na janela a seguir complete os dados conforme mostra a figura abaixo:
Ao clicar em Add teremos a criação do Controlador PalestrantesController e das views na pastas Views/Palestrantes:
Vamos ajustar a view Index.cshtml da pasta Views/Home e no arquivo _Layout.cshtm da pasta Views/Shared vamos incluir um link para acessar a Action Index do controlador Palestrantes:
|
Executando o projeto teremos inicialmente a página inicial exibida:
Ao clicar no link Palestrantes teremos a página que exibe as informações dos palestrantes:
Na próxima parte do artigo vamos fazer os ajustes para exibir a imagem e os dados do palestrante criando as view models no projeto.
Pegue o código do projeto aqui: EventosNet.zip (sem as referências)
"Quão grandes são, Senhor, as tuas obras! Mui profundos
são os teus pensamentos."
Salmos 92:5
Referências:
ASP .NET Core - Implementando a segurança com .
ASP.NET Core MVC - Criando um Dashboard ...
C# - Gerando QRCode - Macoratti
ASP .NET - Gerando QRCode com a API do Google
ASP .NET Core - Gerenciador de Despesas ...
ASP .NET Core - Acessando dados com Entity .
ASP.NET Core Web API - Tratamento de erros
ASP .NET Core MVC - Tratamento de exceções - II
ASP .NET Core - CRUD usando Blazor e Entity ..
ASP .NET Core Blazor - Macoratti.net
Blazor - Vale a pena usar o Blazor
ASP .NET Core 2 - MiniCurso Básico
ASP .NET Core - Implementando a segurança .
Curso ASP .NET Core - Macoratti.net
ASP .NET Core 3.1 - Conteinerizando uma ...