Oi, Rodrigo! Como vai?
Vendo o erro que apareceu (SqlException: Cannot open database "ScreenSoundV0" requested by the login), o problema aqui é conexão/acesso ao banco: ou o banco não existe com esse nome, ou o login não tem permissão, ou a connection string está apontando para o servidor errado.
Siga esses passos para resolver:
- Confirme a Connection String (appsettings.json)
Verifique se o nome do banco (Initial Catalog / Database) bate com o que existe no SQL Server.
Se você estiver usando SQL Server local (LocalDB), confirme o servidor.
Veja este exemplo:
{
"ConnectionStrings": {
"ScreenSoundConnection": "Server=(localdb)\\MSSQLLocalDB;Database=ScreenSoundV0;Trusted_Connection=True;TrustServerCertificate=True"
}
}
O que esse código faz (sem acento): define a string de conexão apontando para o servidor e o nome do banco que a API vai usar.
Garanta que o DbContext usa a chave certa no Program.cs, confira se está lendo o mesmo nome ("ScreenSoundConnection"):
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<ScreenSoundContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("ScreenSoundConnection"))
);
var app = builder.Build();
app.Run();
O que esse código faz (sem acento): registra o DbContext no DI e configura o EF Core para usar SQL Server com a connection string do appsettings.
Crie/atualize o banco com Migrations (se o banco não existir ainda) no terminal, dentro da pasta do projeto que contém o .csproj da API:
dotnet tool install --global dotnet-ef
dotnet ef migrations add Inicial
dotnet ef database update
O que esse código faz (sem acento): cria uma migração e executa o update para criar as tabelas e o banco (se estiver configurado para criar/atualizar).
Se estiver usando SQL Server Authentication (usuário/senha), confirme se o usuário existe e tem permissão no banco ScreenSoundV0.
Exemplo de connection string com usuário e senha:
{
"ConnectionStrings": {
"ScreenSoundConnection": "Server=localhost;Database=ScreenSoundV0;User Id=sa;Password=SuaSenha;TrustServerCertificate=True"
}
}
O que esse código faz (sem acento): conecta no SQL Server usando login e senha em vez de Trusted_Connection.
Dica rápida para diagnostico
- Abra o SQL Server/SSMS e confirme se existe um banco chamado ScreenSoundV0.
- Se no seu ambiente o banco estiver com outro nome (ex: ScreenSound), ajuste no appsettings.json.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.