Bom dia Pedro, tudo bom?
Muito bacana você ter conseguido uma outra solução que funciona e utilizando corretamrente oIActionResult
. Mas voltando ao primeiro erro, pela mensagem parece erro de conexão com o MySQL, mas verifique as configurações em:
AppDbContext:
using FilmesApi.Models;
using FilmesAPI.Models;
using Microsoft.EntityFrameworkCore;
namespace FilmesApi.Data
{
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> opt) : base(opt)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Endereco>()
.HasOne(endereco => endereco.Cinema)
.WithOne(cinema => cinema.Endereco)
.HasForeignKey<Cinema>(cinema => cinema.EnderecoId);
}
public DbSet<Filme> Filmes { get; set; }
public DbSet<Cinema> Cinemas { get; set; }
public DbSet<Endereco> Enderecos { get; set; }
}
}
Nas entidades:
public class Cinema
{
[Key]
[Required]
public int Id { get; set; }
[Required(ErrorMessage = "O campo de nome é obrigatório")]
public string Nome { get; set; }
public virtual Endereco Endereco { get; set; }
public int EnderecoId { get; set; }
}
public class Endereco
{
[Key]
[Required]
public int Id { get; set; }
public string Logradouro { get; set; }
public string Bairro { get; set; }
public int Numero { get; set; }
[JsonIgnore]
public virtual Cinema Cinema { get; set; }
}
E na classe Startup:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(opts => opts.UseLazyLoadingProxies().UseMySQL(Configuration.GetConnectionString("CinemaConnection")));
services.AddControllers();
services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
}
Espero que tenha ajudado e, qualquer coisa, estamos à disposição!
Abraços e bons estudos 😄
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!