Migrações do Code First atualizando o banco de dados errado no localdb
-
21-12-2019 - |
Pergunta
Estou usando migrações de código inicial para criar e atualizar o banco de dados do meu site asp mvc.
Tenho um DbContext, que está em outro projeto da solução.
public class EFDbContext : DbContext
{
public DbSet<Book> Books { get; set; }
public DbSet<Author> Authors { get; set; }
public DbSet<Publisher> Publishers { get; set; }
}
Quando eu habilito migrações e adiciono migração [nome].Parece criar seu próprio banco de dados chamado
[foo-projectname].Domain.Concrete.EFDbContext
Em vez de anexar ao banco de dados que criei, chamado [foo-nome do projeto].No webconfig do site a string de conexão está referenciada por catálogo "[foo-nome do projeto]".
Se eu alterar o webconfig para outro banco de dados, obterei resultados dos itens que adicionei a esse banco de dados.No entanto, quero usar o banco de dados que criei.
A razão pela qual não quero continuar com este criado automaticamente é porque não tenho certeza sobre a migração para o SqlServer e não quero ficar preso mais adiante.Também estou recebendo o erro
O modelo que suporta o contexto 'EFDbContext' mudou desde...
mesmo quando eu não mudei nada.
Solução
X é o nome do projeto que contém derivados DbContext
aula.
- Certifique-se de que
Default project
sobrePackage Manager Console
é X - Certifique-se de que o projeto de inicialização ativo na solução seja X
Outra solução alternativa é fornecer os seguintes parâmetros ao executar a sintaxe de migração.
-ProjectName X -StartUpProjectName X
Descrição de alguns parâmetros:
-ProjectName <String>
Specifies the project that contains the migration configuration type to be
used. If omitted, the default project selected in package manager console
is used.
-StartUpProjectName <String>
Specifies the configuration file to use for named connection strings. If
omitted, the specified project's configuration file is used.
-ConfigurationTypeName <String>
Specifies the migrations configuration to use. If omitted, migrations will
attempt to locate a single migrations configuration type in the target
project.
-ConnectionStringName <String>
Specifies the name of a connection string to use from the application's
configuration file.
-ConnectionString <String>
Specifies the the connection string to use. If omitted, the context's
default connection will be used.