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
- Instalar o Pomelo.EntityFramework.MySql
- Desinstalar o MySQL.EntityFramework
- 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