在程序集“SMSApp”中找到了多个迁移配置类型。指定要使用的名称 [英] More than one migrations configuration type was found in the assembly 'SMSApp'. Specify the name of the one to use
问题描述
我正面临一个问题。当我第一次尝试下面的comands,它工作并生成该数据库中的表。但是当我改变了一些更多的类,然后尝试使用前2个查询,它在这种情况下工作,但是当我尝试了第三个命令,它给了我这个消息。
第一步
==========
启用迁移-ContextTypeName IdentityDb -MigrationsDirectory DAL\IdentityMigrations
启用迁移-ContextTypeName SMSContext -MigrationsDirectory DAL\SMSMigrations
第二步
===========
添加迁移 - ConfigurationTypeName SMSApp.DAL.IdentityMigrations.ConfigurationInitialCreate
add-migration -ConfigurationTypeName SMSApp.DAL.SMSMigrations.ConfigurationInitialCreate
第三步
== ========
update-database -ConfigurationTypeName SMSApp.DAL.IdentityMigrations.Configuration -verbose
update-database -ConfigurationTypeName SMSApp.DAL.SMSMigrations.Configuration -verbose
看到第一个错误:
PM> add-migration -ConfigurationTypeName SMSApp.DAL.IdentityMigrations.ConfigurationInitialCreate
脚手架迁移。
此迁移文件的Designer代码包含您当前的Code First模型的快照。当您支持下一次迁移时,此快照用于计算模型的更改。如果您要在此迁移中对模型进行其他更改,那么可以通过再次运行Add-Migration InitialCreate来重新构建它。
以前称为InitialCreate的迁移已经应用于目标数据库。如果您打算重建InitialCreate,请通过运行Update-Database -TargetMigration $ InitialDatabase来恢复它,然后删除'201409261933262_InitialCreate1.cs'并再次运行Add-Migration InitialCreate。
之后,我执行了以下命令,它给出了下面的异常。
更新数据库-TargetMigration $ InitialDatabase -verbose
PM> Update-Database -TargetMigration $ InitialDatabase -verbose
使用StartUp项目'SMSApp'。
使用NuGet项目'SMSApp'。
指定'-Verbose'标志来查看应用于目标数据库的SQL语句。
System.Data.Entity.Migrations.Infrastructure.MigrationsException:在程序集SMSApp中找到了多个迁移配置类型。指定要使用的名称。
在System.Data.Entity.Utilities.TypeFinder.FindType(Type baseType,String typeName,Func`2过滤器,Func`2 noType,Func`3 multipleTypes,Func`3 noTypeWithName,Func`3 multipleTypesWithName)
在System.Data.Entity.Migrations.Utilities.MigrationsConfigurationFinder.FindMigrationsConfiguration(键入contextType,String configurationTypeName,Func`2 noType,Func`3 multipleTypes,Func`3 noTypeWithName,Func`3 multipleTypesWithName)
在系统。 Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.FindConfiguration()
在System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.GetMigrator()
在System.Data.Entity.Migrations。 Design.ToolingFacade.UpdateRunner.Run()
在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
在System.Data.Entity.Migrations。 Design.ToolingFacade.Run(BaseRunner runner)
在System.Data.Entity.Migrations.Design.To oingFacade.Update(String targetMigration,Boolean force)
在System.Data.Entity.Migrations.UpdateDatabaseCommand。 c__DisplayClass2。< .ctor> b__0()
在System.Data.Entity。 Migrations.MigrationsDomainCommand.Execute(Action命令)
程序集SMSApp中找到多个迁移配置类型。指定要使用的名称。
现在我担心如何解决它?
您需要指定更新数据库时要使用的配置。
更新数据库-ConfigurationTypeName MyRenamedConfiguration
I am developing a mvc 5 application using code first approach.
i am facing an issue . at first time when i try below comands , it worked and generate the table in that database. but when i changed some more classes and then tried with first 2 queries , it worked in that case but when i tried the third command, it gave this message to me.
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
see the first error:
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.
After that i executed the below command, it gave the below exception.
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.
NOw i am worry how to resolve it?
You need to specify which configuration you want to use when updating the databases.
Update-Database -ConfigurationTypeName MyRenamedConfiguration
这篇关于在程序集“SMSApp”中找到了多个迁移配置类型。指定要使用的名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!