2014-09-26 8 views
12

Pracuję nad aplikacją mvc 5, korzystając z pierwszego podejścia do kodu.W zestawie "SMSApp" znaleziono więcej niż jeden typ konfiguracji migracji. Podaj nazwę używanego urządzenia

Mam do czynienia z problemem. za pierwszym razem, gdy próbowałem pod niższymi wersjami, zadziałało i wygenerowało tabelę w tej bazie danych. ale gdy zmieniłem kilka klas, a następnie wypróbowałem przy dwóch pierwszych zapytaniach, zadziałało w tym przypadku, ale kiedy wypróbowałem trzecie polecenie, przekazałem mi tę wiadomość.

 
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 

zobaczyć pierwszy błąd:

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. 

Potem wykonał polecenie poniżej, dało poniższy wyjątek.

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. 

teraz jestem martwić się, jak go rozwiązać?

+0

Opublikuj swoje Web.config i Configuration/Migrations.cs, a jeśli masz kontekst danych lub initilizers nigdzie indziej, nie publikuj ich. – Yoda

Odpowiedz

21

Musisz określić konfigurację, której chcesz użyć podczas aktualizacji baz danych.

Update-Database -ConfigurationTypeName MyRenamedConfiguration 
+2

Można również użyć skrótu: Aktualizacja bazy danych - Konfiguracja MyRenamedConfiguration lub nawet Aktualizacja bazy danych -konfiguracja MyRenamedConfiguration lub dowolny skrót unikalny, np. Aktualizacja bazy danych - w przypadku konfiguracji MyRenamedConfiguration –