ASP .NET Core - Usando o EF Core em um projeto separado - III |
Neste artigo vou mostrar como usar e configurar o EF Core em um projeto separado na criação de uma aplicação ASP .NET Core MVC. |
Continuando o artigo anterior vamos concluir a implementação criando o controlador e a view no projeto MVC.
Configurando o projeto MVC
Abrindo o projeto
Receitas.Mvc clique com o botão direito do mouse
sobre a pasta Controllers e clique em
Add->Controller;
A seguir selecione a opção MVC Controller - Empty e informe o nome ReceitasController;
A seguir inclua o código abaixo neste arquivo:
using Microsoft.AspNetCore.Mvc;
using Receitas.Application.Interfaces;
using Receitas.Application.ViewModels;
namespace Receitas.Mvc.Controllers
{
public class ReceitasController : Controller
{
private IReceitaService _receitaService;
public ReceitasController(IReceitaService receitaService)
{
_receitaService = receitaService;
}
public IActionResult Index()
{
ReceitaViewModel model = _receitaService.GetReceitas();
return View(model);
}
}
}
|
Observe que temos um controlador bem enxuto e limpo graças à separação das responsabilidades em nossos projetos.
Estamos injetando uma instância do serviço e no método Action Index usando esta instância para obter as receitas do banco de dados usando a view model ReceitaViewModel.
A seguir passamos a ReceitaViewModel para nossa view que iremos criar a seguir.
Para criar a view clique com o botão direito sobre o método Action Index no controlador ReceitasController e selecione Add View;
Na janela a seguir selecione - Razor View - Empty e clique em Add;
Será criado o arquivo Index.cshtml na pasta /Views/Receitas. Inclua o código abaixo neste arquivo:
@model Receitas.Application.ViewModels.ReceitaViewModel
<table id="receita" class="table table-bordered table-hover">
<thead>
<tr class="">
<th>Nome</th>
<th>Ingredientes</th>
<th>Preparo</th>
<th>Tempo (min.)</th>
<th>Rendimento</th>
<th>Foto</th>
</tr>
</thead>
<tbody>
@foreach(var receita in Model.Receitas)
{
<tr style="height: 50px;">
<td>@receita.Nome</td>
<td>@receita.Ingredientes</td>
<td>@receita.Preparo</td>
<td>@receita.Tempo</td>
<td>@receita.Rendimento</td>
<td><img src="~/images/@receita.Imagem" /></td>
</tr>
}
</tbody>
</table>
|
Para exibir as imagens vamos criar a pasta images dentro da pasta wwwroot e incluir nesta pasta as imagens : pudimleite.jpg e bolochocolate.jpg.
A seguir inclua o código abaixo no arquivo _Layout.cshtml na pasta Views/Shared:
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Index">Home</a> </li> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-controller="Receitas" asp-action="Index">Receitas</a> </li> </ul> </div> |
Agora é só alegria...
Executando o projeto teremos o resultado abaixo:
Fique a vontade para incluir outras funcionalidades no projeto.
Pegue o projeto completo aqui: Receitas.zip
"Portanto, irmãos, empenhem-se ainda
mais para consolidar o chamado e a eleição de vocês, pois se agirem dessa forma,
jamais tropeçarão, e assim vocês estarão ricamente providos quando entrarem no
Reino eterno de nosso Senhor e Salvador Jesus Cristo."
2 Pedro 1:10,11
Referências:
EF Core - Iniciando com o Entity Framework Core
Core - Usando o EF Core com Windows Forms ...
ASP .NET Core - Acessando dados com Entity ..
EF Core - Conceitos Básicos - Macoratti
EF Core - Usando a abordagem DataBase First ...
EF Core 2.0 - Scaffolding DbContext e Models ...
Curso Entity Framework Core 2.0 - Vídeo Aulas