2014-09-26 7 views
12

Sto sviluppando un'applicazione mvc 5 utilizzando l'approccio code first.È stato trovato più di un tipo di configurazione di migrazione nell'assembly "SMSApp". Specificare il nome di quello da utilizzare

sto affrontando un problema. al primo tentativo quando provo sotto i comandi, ha funzionato e generato la tabella in quel database. ma quando ho cambiato qualche altra classe e poi ho provato con le prime due query, ha funzionato in quel caso ma quando ho provato il terzo comando, mi ha dato questo messaggio.

 
First step 
========== 

enable-migrations -ContextTypeName IdentityDb -MigrationsDirectory DAL\IdentityMigrations 

enable-migrations -ContextTypeName SMSContext -MigrationsDirectory DAL\SMSMigrations 

Second Step 
=========== 

add-migration -ConfigurationTypeName SMSApp.DAL.IdentityMigrations.Configuration "InitialCreate" 

add-migration -ConfigurationTypeName SMSApp.DAL.SMSMigrations.Configuration "InitialCreate" 

Third Step 
========== 

update-database -ConfigurationTypeName SMSApp.DAL.IdentityMigrations.Configuration -verbose 

update-database -ConfigurationTypeName SMSApp.DAL.SMSMigrations.Configuration -verbose 

vedono il primo errore:

PM> add-migration -ConfigurationTypeName SMSApp.DAL.IdentityMigrations.Configuration "InitialCreate" 
Scaffolding migration ' '. 
The Designer Code for this migration file includes a snapshot of your current Code First model. This snapshot is used to calculate the changes to your model when you scaffold the next migration. If you make additional changes to your model that you want to include in this migration, then you can re-scaffold it by running 'Add-Migration InitialCreate' again. 

A previous migration called 'InitialCreate' was already applied to the target database. If you meant to re-scaffold 'InitialCreate', revert it by running 'Update-Database -TargetMigration $InitialDatabase', then delete '201409261933262_InitialCreate1.cs' and run 'Add-Migration InitialCreate' again. 

Dopo che ho eseguito il comando di seguito, ha dato l'eccezione di seguito.

Update-Database -TargetMigration $ InitialDatabase -verbose

PM> Update-Database -TargetMigration $InitialDatabase -verbose 
Using StartUp project 'SMSApp'. 
Using NuGet project 'SMSApp'. 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
System.Data.Entity.Migrations.Infrastructure.MigrationsException: More than one migrations configuration type was found in the assembly 'SMSApp'. Specify the name of the one to use. 
    at System.Data.Entity.Utilities.TypeFinder.FindType(Type baseType, String typeName, Func`2 filter, Func`2 noType, Func`3 multipleTypes, Func`3 noTypeWithName, Func`3 multipleTypesWithName) 
    at System.Data.Entity.Migrations.Utilities.MigrationsConfigurationFinder.FindMigrationsConfiguration(Type contextType, String configurationTypeName, Func`2 noType, Func`3 multipleTypes, Func`3 noTypeWithName, Func`3 multipleTypesWithName) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.FindConfiguration() 
    at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.GetMigrator() 
    at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.Run() 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force) 
    at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
More than one migrations configuration type was found in the assembly 'SMSApp'. Specify the name of the one to use. 

Ora sono preoccupato come risolverlo?

+0

Pubblica il tuo Web.config e Configuration/Migrations.cs e se disponi di contesto dati o initilizer in qualsiasi altro posto pubblicali anche loro. – Yoda

risposta

21

È necessario specificare quale configurazione si desidera utilizzare durante l'aggiornamento dei database.

Update-Database -ConfigurationTypeName MyRenamedConfiguration 
+2

È inoltre possibile utilizzare una notazione abbreviata: Aggiornamento database -Configurazione MyRenamedConfiguration o anche Aggiornamento database -Config MyRenamedConfiguration o qualsiasi abbreviazione che è univoca es. Aggiornamento database -Conf MyRenamedConfiguration –

Problemi correlati