c# - Exceção Enable-Migrations chamando "SetData" com argumento(s) "2" - Resolvido
c# - Exceção Enable-Migrations chamando "SetData" com argumento(s) "2"
Criei uma biblioteca baseada na versão .NET 4.6.2.
À biblioteca, adicionei o pacote EntityFramework versão 6.1.3.
Eu criei um modelo da seguinte forma
E o dbcontext
Tentei ativar a migração e fiz via
instrução, recebeu a mensagem de erro:
Atualizar Aqui a estrutura, como o projeto é construído
No sessiontest.cs, escrevi o teste para db.
O projeto ComponentsTest, onde escrevi o teste de unidade, o app.config tem a seguinte aparência:
E na biblioteca (Component) em si o app.config:
Atualização de 2018 - se a resposta aceita não ajudar, consulte este problema do github no repositório EF6. Aparentemente, os comandos de migração de código não funcionam com o novo formato de projeto. Para que os comandos de migração funcionem, é necessário criar um projeto da Class Library (.NET Framework) (padrão antigo), mover todos os arquivos para lá, adicionar todas as dependências necessárias e executar o comando.
EDIT: Acabei de encontrar este problema criando um projeto da Class Library (.NET Standard) no VisualStudio 2017 15.6.6 usando o EntityFramework 6.2.0. Criar um projeto "antigo padrão", conforme explicado acima, corrige-o.
Editar: correção simples (conforme indicado acima) -StartupProjectName YourEF6ProjectNameHere
Quando eu estava usando o StartupProjectName errado, ainda recebia o erro. Foi quando eu estava usando a solução abaixo:
Minha solução alternativa é descarregar o projeto que não requer migrações EF:
Descarregue o projeto de inicialização (no meu caso, um projeto ASP.Net Core). Clique com o botão direito do mouse no nome do projeto e selecione Unload Project .
Execute os comandos de migração necessários no Console do Gerenciador de Pacotes
Clique com o botão direito do mouse no projeto descarregado e escolha Reload Project
Clique com o botão direito do mouse no mesmo projeto e escolha Set as StartUp Project .
Eu também tinha duas versões do EF instaladas e usando o comando "EntityFrameworkCore \ Add-Migration [migrationname]" para especificar qual versão usar resolver o problema.
Isso pode acontecer se você tiver o Microsoft.EntityFrameworkCore.SqlServer instalado junto com uma versão mais antiga do EntityFramework, por exemplo, 6.x
No Visual Studio, vá para Projetar / gerenciar pacotes Nuget ...
Dê uma olhada na lista Instalado e, se mais de uma versão do EntityFramework estiver instalada, desinstale todas as versões anteriores, deixando apenas a versão mais recente.
Para não definir explicitamente o projeto de inicialização, você pode usar o comando:
Especifica o projeto ao qual a classe de configuração de migrações de andaimes será adicionada (configuration.cs). Se omitido, o projeto padrão selecionado no console do gerenciador de pacotes é usado.
Especifica o arquivo de configuração a ser usado para cadeias de conexão nomeadas. Se omitido, o arquivo de configuração do projeto especificado é usado.
Para obter mais detalhes sobre o comando, execute:
se alguém estiver usando o visual studio 2017, talvez seja necessário verificar os seguintes pacotes