Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao executar as Migrations do Projeto Inicial do curso (Aula 1), Projeto Inicial

Ao executar o comando Update-Database da esse erro: Build started... Build succeeded. The Entity Framework tools version '7.0.13' is older than that of the runtime '7.0.14'. Update the tools for the latest features and bug fixes. See https://aka.ms/AAc1fbw for more information. Applying migration '20231110171503_projetoInicial'. Applying migration '20231110180103_PopularTabela'. Applying migration '20231110182035_AdicionarColunaAnoLancamento'. Applying migration '20231113194025_PopularMusicas'. Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] update Musicas set ArtistaId = (select Id from Artistas where Nome = 'Djavan') Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid column name 'ArtistaId'. at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at Microsoft.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean isAsync, Int32 timeout, Boolean asyncWrite) at Microsoft.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry, String methodName) at Microsoft.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject) at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary2 parameterValues) at Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery(IEnumerable`1 migrationCommands, IRelationalConnection connection) at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration, String connectionString, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration, String connectionString, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.<>c__DisplayClass0_0.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) ClientConnectionId:d0adcb94-efe5-4666-b1f5-596eb9514b79 Error Number:207,State:1,Class:16 Invalid column name 'ArtistaId'.

2 respostas
solução!

Oi Caio! Como vai?

O erro que você está recebendo indica que a coluna 'ArtistaId' não existe na tabela 'Musicas'. Isso pode ocorrer por algumas razões, e aqui estão alguns passos que você pode seguir para tentar resolver o problema:

  1. Verifique suas Migrations: Certifique-se de que todas as migrations foram aplicadas corretamente. Pode ser que a migration que deveria adicionar a coluna 'ArtistaId' não tenha sido executada ou tenha falhado. Você pode verificar isso olhando os arquivos de migration na pasta Migrations do seu projeto para ver se há uma migration que adiciona essa coluna.

  2. Atualize suas Migrations: Caso a migration esteja faltando, você pode tentar adicionar uma nova migration que inclua essa coluna. Use o comando Add-Migration AddArtistaIdToMusicas para criar uma nova migration e depois Update-Database para aplicá-la.

  3. Consistência do Código: Verifique se o seu modelo de dados está consistente com o banco de dados. A classe que representa a tabela 'Musicas' deve ter uma propriedade para a coluna 'ArtistaId'. Algo como:

    public class Musica
    {
        public int Id { get; set; }
        public int ArtistaId { get; set; }
        // outras propriedades...
    }
    

Espero que essas dicas ajudem a resolver o problema e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Boa tarde, Armano, eu consegui resolver o problema criando a tabela na mão, via comandos SQL, mas esse projeto está sendo disponibilizado na aula 1 do curso ASP.NET: autenticação e autorização em APIs e aplicações web, ou seja, não teve nada alterado nele. Ele foi disponibilizado já com o erro, não houve manipulação nem exclusão de dados, e, estou reparando que tem alguns cursos assim nas formações de c#, então fica a sugestão de estarem revisando os projetos que estão disponibilizando, diversas vezes eu tive que usar a IA, ou meu própio conhecimento, para resolver problemas de compilação dos projetos disponibilizados pelos professores, me parece que o código não está sendo executando antes de disponibilizar ele para os alunos. Será que alunos com menos experiencia, não seriam prejudicados?, seria interessante pedir ao pessoal para revisar isso dai, para garantir que esteja tudo certo. A plataforma ja é cara e está disponibilizando código com erro.