1
resposta

O código não consegue conectar-se ao banco

Boa tarde. Estou há horas tentando resolver isso, e realmente preciso de ajuda. Não estou completamente familiarizado com o Visual Studio.

Baixei novamente o projeto para fazer a parte 2 do curso, mas o banco de dados vem quebrado. Refiz o banco de dados e rodei o script. Solucionei todos os conflitos, e ao rodar a Aula4 (que consulta do banco), tenho este erro.

System.Data.Entity.Core.EntityException HResult=0x80131501 Message=The underlying provider failed on Open. Source=EntityFramework StackTrace: em System.Data.Entity.Core.EntityClient.EntityConnection.Open() em System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions) em System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) em System.Data.Entity.Core.Objects.ObjectQuery1.<>c__DisplayClass7.b__5() em System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func1 operation) em System.Data.Entity.Core.Objects.ObjectQuery1.GetResults(Nullable1 forMergeOption) em System.Data.Entity.Core.Objects.ObjectQuery1.<System.Collections.Generic.IEnumerable.GetEnumerator>b__0() em System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() em Aula4.Program.Main(String[] args) em C:\Users\Henrique\Documents\Projetos de Estudo\linq\linq3\linq-c-sharp-8d0a3161a2bcd5860b6692e487d99c321c03b113\Aula4\Program.cs:linha 27

Esta exceção foi gerada originalmente nesta pilha de chamadas: [Código Externo]

Exceção interna 1: SqlException: Could not open new database '94744C9BAADCC07980AF4DCAF633170D_LINQ\LINQ3\LINQ-C-SHARP-8D0A3161A2BCD5860B6692E487D99C321C03B113\AULA4\BIN\DEBUG\ALURATUNES.MDF'. CREATE DATABASE is aborted. An attempt to attach an auto-named database for file C:\Users\Henrique\Documents\Projetos de Estudo\linq\linq3\linq-c-sharp-8d0a3161a2bcd5860b6692e487d99c321c03b113\Aula4\bin\Debug\AluraTunes.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. File activation failure. The physical file name "C:\Users\Henrique\Documents\Projetos de Estudo\linq\linq3\linq-c-sharp-8d0a3161a2bcd5860b6692e487d99c321c03b113\Aula4\bin\Debug\AluraTunes.mdf.ldf" may be incorrect. The log cannot be rebuilt because there were open transactions/users when the database was shutdown, no checkpoint occurred to the database, or the database was read-only. This error could occur if the transaction log file was manually deleted or lost due to a hardware or environment failure.

Não sei onde trocar o endereço do arquivo para mudar o banco de dados, mas estou ficando louco com isso já. Alguém pode me ajudar com isso?

1 resposta

Olá Henrique, tudo bem?

Pelo que entendi, levando em conta que o caminho que os arquivos foram extraídos estão nessa pasta: linq-c-sharp-8d0a3161a2bcd5860b6692e487d99c321c03b113, isso quer dizer que o download é referente ao primeiro curso, correto?

Fiz o download desse arquivo e assim como você falou, deletei o banco de dados e criei um novo e executei a query que vem junto do projeto. Depois disso acusou um erro em vários projetos que faltava o Entity Framework. Fiz a instalação do Entity na versão 6.1.3 em todos os projetos, porque estava faltando:

O erro que se seguiu, que na verdade me chamou a atenção, foi porque o banco de dados não tinha sido copiado para a pasta de saída do projeto. Para arrumar isso, nas propriedades do arquivo .mdf, tem a propriedade Copiar para Diretório de Saída, alterei o valor para Copiar sempre:

Me parece que esse erro foi causado por causa desse banco de dados que não foi copiado para o diretório de saída do projeto.

No aguardo!