0
respostas

Sugestão - Atualização dos vídeos

Honestamente não curti o fato das aulas estarem desatualizadas em relação à versão atual do .NET, seria muito bom se os instrutores e organizadores regravassem algumas aulas. NO ENTANTO... Como tenho ganas de programador, alma de "hacker" (no sentido original da palavra, de to hack), e não nasci quadrado, seguirei as instruções e versões do instrutor para fins didáticos e ASSIM QUE FINALIZAR A TRILHA PRINCIPAL dispobilizo aqui um repo utilizando .NET 6 para aqueles interessados! :)

Atualização: Não é tão diferente assim então não vou criar um repo só pra isso, só seguir os passos

  1. Instalar o Pomelo.EntityFramework.MySql
  2. Desinstalar o MySQL.EntityFramework
  3. Copiar o seguinte código para os respectivos arquivos:

FilmeContext.cs

using FilmesAPI.Models;
using Microsoft.EntityFrameworkCore;

namespace FilmesAPI.Data
{
    public class FilmeContext : DbContext
    {
        private readonly DbContextOptions<FilmeContext> _options;

        public DbSet<Filme> Filmes { get; set; }

        public FilmeContext()
        {
        }

        public FilmeContext(DbContextOptions<FilmeContext> options) :base(options)
        {
            _options = options;
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
            // Aqui um exemplo para VersaoDo.Seu.MySql seria 8.0.28
                optionsBuilder.UseMySql(
                    "SuaStringDeConfiguracao", ServerVersion.Parse(" VersaoDo.Seu.MySql-mysql")
                );
            }
        }
    }
}

Program.cs

using FilmesAPI.Data;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

var connectionString = builder.Configuration.GetConnectionString("FilmeConnection");
builder.Services.AddDbContext<FilmeContext>(options =>
{
    // Aqui um exemplo para VersaoDo.Seu.MySql seria 8.0.28
    // Como temos o builder, podemos acessar o Configuration facilmente então não é necessário digitar manualmente
    options.UseMySql(connectionString, Microsoft.EntityFrameworkCore.ServerVersion.Parse("VersaoDo.Seu.MySql-mysql"));
});


// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

OBS.: Caso tenha algo no meu código que possa ser melhorado, por favor sugerir :D