【发布时间】:2014-11-21 22:03:49
【问题描述】:
我正在使用代码优先方法开发一个 mvc 5 应用程序。
我面临一个问题。第一次尝试以下命令时,它可以工作并在该数据库中生成表。但是当我更改了更多类然后尝试使用前 2 个查询时,它在这种情况下有效,但是当我尝试第三个命令时,它给了我这个消息。
第一步 ========== 启用迁移 -ContextTypeName IdentityDb -MigrationsDirectory DAL\IdentityMigrations 启用迁移 -ContextTypeName SMSContext -MigrationsDirectory DAL\SMSMigrations 第二步 =========== 添加迁移-ConfigurationTypeName SMSApp.DAL.IdentityMigrations.Configuration "InitialCreate" 添加迁移-ConfigurationTypeName SMSApp.DAL.SMSMigrations.Configuration "InitialCreate" 第三步 ========== 更新数据库-ConfigurationTypeName SMSApp.DAL.IdentityMigrations.Configuration -verbose 更新数据库-ConfigurationTypeName SMSApp.DAL.SMSMigrations.Configuration -verbose查看第一个错误:
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.
之后我执行了以下命令,它给出了以下异常。
更新数据库 -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.
现在我很担心如何解决它?
【问题讨论】:
-
发布您的 Web.config 和 Configuration/Migrations.cs,如果您在其他任何地方有数据上下文或初始化程序,也发布它们。
标签: .net asp.net-mvc entity-framework ef-code-first