2
respostas

[Dúvida] Problemas ao executar Update-Database do projeto do Github

Baixei o projeto do Github, corrigi o outro erro postado aqui sobre o DbContextOptionsBuilder e tentei executar Update-Database para criação do banco, mas estou tendo erros:

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. Unable to create an object of type 'ScreenSoundContext'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728

Parece ser diferença de versões dos pacotes, tentei deixar todas para o 7.0.14 mas continuo com erro. Segui alguns comandos dos links da microsoft mas ainda ocorre erros ao tentar executar Update-Database

2 respostas

Opa ok, eu consegui corrigir, apliquei a mudança no program.cs:

var optionsBuilder = new DbContextOptionsBuilder<ScreenSoundContext>();
optionsBuilder.UseSqlServer("Sua Conexão ao banco"); 
var context = new ScreenSoundContext(optionsBuilder.Options);

Retirei todos os pacotes que tinham no projeto ScreenSound e ScreenSound.Shared.Dados e instalei novamente para a versão mais recente (9.04)

Incluí uma nova classe em ScreenSound.Shared.Dados na pasta Banco : ScreenSoundContextFactory

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using ScreenSound.Banco;

namespace ScreenSound.Shared.Dados.Banco
{
    public class ScreenSoundContextFactory : IDesignTimeDbContextFactory<ScreenSoundContext>
    {
        public ScreenSoundContext CreateDbContext(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder<ScreenSoundContext>();
            optionsBuilder.UseSqlServer("Sua Conexão com banco");

            return new ScreenSoundContext(optionsBuilder.Options);
        }
    }
}

Dessa maneira consegui executar o código e o Update-Database para criação no meu banco local, posso tentar fazer um fork do projeto e fazer um pull request com esses ajustes

Olá, Lucas! Tudo bem?

Fico feliz que tenha conseguido resolver o problema que você estava tendo! Além disso, agradeço por compartilhar a solução que você encontrou, sei que ela ajudará outros alunos que estiverem com o mesmo problema.

No mais, bons estudos!