Na hora de adicionar a migration de este erro e não sei como proceder e nem o que fazer depois disso aqui, já tentei de tudo e nada funcionou. Se alguém conseguir me ajudar ou passar algum tutorial pra resolver ajudaria muito.
Segue os meus códigos abaixo:
launchSettings.json
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:20894",
"sslPort": 44325
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": false,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5117",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:7164;http://localhost:5117",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
"LivroController.cs"
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using SistemaBiblioteca.Models;
namespace SistemaBiblioteca.Controllers;
[ApiController]
[Route("[controller]")]
public class LivroController : ControllerBase
{
private static List<Livro> livros = new List<Livro>();
private static int id = 0;
[HttpPost]
public IActionResult AdicionaLivro([FromBody] Livro livro)
{
livro.Id = id++;
livros.Add(livro);
return CreatedAtAction(nameof(RecuperaLivroPorId),
new {id = livro.Id},
livro);
}
[HttpGet]
public IEnumerable<Livro> RecuperaLivros([FromQuery] int skip = 0,
[FromQuery] int take = 50)
{
return livros.Skip(skip).Take(take);
}
[HttpGet("{id}")]
public IActionResult RecuperaLivroPorId(int id)
{
var livro = livros.FirstOrDefault(livro => livro.Id == id);
if (livro == null) return NotFound();
return Ok(livro);
}
}
LivroContext.cs
using Microsoft.EntityFrameworkCore;
using SistemaBiblioteca.Models;
namespace SistemaBiblioteca.Data
{
public class LivroContext : DbContext
{
public LivroContext(DbContextOptions<LivroContext> opts)
: base(opts)
{
}
public DbSet<Livro> Livros { get; set; }
}
}
Livro.cs
using System.ComponentModel.DataAnnotations;
namespace SistemaBiblioteca.Models;
public class Livro
{
[Key]
[Required]
public int Id { get; set; }
[Required(ErrorMessage = "O título do livro é obrigatório")]
public string Titulo { get; set; }
[Required(ErrorMessage = "O gênero do livro é obrigatório")]
[MaxLength(50, ErrorMessage = "O tamanho do gênero não pode exceder 30 caracteres")]
public string Genero { get; set; }
[Required]
[Range(45, 1000, ErrorMessage = "O livro deve ter entre 45 e 1000 páginas")]
public int Paginas { get; set; }
}
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"LivroConnection": "server=localhost;database=livro;user=root;password=root"
}
}
Program.cs
using SistemaBiblioteca.Data;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString
("LivroConnection");
builder.Services.AddDbContext<LivroContext>(opts =>
opts.UseMySql(connectionString,ServerVersion.AutoDetect
(connectionString)));
// 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();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();