3
respostas

Entity Framework Core - Como corrigir erro ao iniciar uma migração em um projeto separados em camadas ??

Alguém pode me explicar por gentileza como eu resolvo esse erro que aparece toda vez que eu vou efetuar uma Add-Migration ??? Estou usando o Entity Framework Core Versão 2.0.1 Estou usando projetos separados em camadas (DLLs) 1 - View (formulários) 2 - Model (modelos de domínio: Cliente,Fornecedor,Usuario,etc..) 3 - Controller (regras de negócio) 4 - DAL (Repositório) é onde eu instalei o Entity Framework Core. É nessa DLL que eu tenho meu DbContext com meus DbSets e é onde estou tentando gerar minhas migrações. Porém toda vez que vou iniciar uma migração, não saio dessa roda viva com esse erro aí em baixo.

Não sei o que fazer. Alguém pode me ajudar a solucionar isso ??

Your startup project 'EFCoreApp.View' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.

3 respostas

Fala, Maurício, tudo bem? Primeira coisa que vou pedir pra você fazer é garantir que está executando a migração no projeto correto. No console vai haver uma lista dos projetos cujos comandos serão destinados. Garanta que o projeto selecionado é o seu DAL. Se não estava selecionado, poder ser esse o problema. Tenta aí.

Mas se não resolver acho que vai ter a ver com o fato de que seu projeto de EFCoreApp.View está dependendo do Entity, mesmo que indiretamente através do projeto de DAL. Então vai precisar instalar os pacotes necessários do EF no projeto de View.

Um último recurso é um bug que acontecia quando usávamos o EF em soluções com vários projetos (o seu caso). Garanta que, antes de adicionar a migration, você coloque o projeto de DAL como projeto de inicialização. Vai com o botão direito no projeto e escolha a opção Definir como projeto de inicialização ou se seu Visual Studio for estiver em inglês Set as Startup Project. Daí sim você roda a migration. Me dá um feedback do que rolou, por favor. Abraços!

Boa noite professor. Foi resolvido da seguinte forma, antes para que não seja necessário instalar o EF Core na camada View, selecionei meu projeto DAL com o botão direito do mouse e informei que esse projeto é o projeto de inicialização. Depois fui no console selecionei o projeto DAL e fiz o Add-Migrations. Correu tudo OK, sem problemas e depois fiz o Update-Database. Tudo certo também. Após ter realizado minhas migrações, voltei no projeto principal que minha camada View e voltei ela como sendo o projeto de inicialização. Pronto. Funcionou tudo sem precisar instalar nada na View. Executei o sistema e pronto, tudo funcionando. quando eu precisar incluir mais migrações ou fazer ajustes na base é só ir lá na DAL e informar que ela é o projeto de inicialização e fazer tudo depois volto para a view novamente. Sem problemas. Está tudo funcionando assim, dessa forma. Para mim está ótimo assim. O que achou ??

Tá certinho, Mauricio. Quando temos soluções com mais de um projeto, a gente precisa atentar para a questão do projeto de inicialização ao rodar as migrações. Qualquer outro problema me avisa. Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software