类型“上下文”不继承自“ System.Data.Entity.Migrations.DbMigrationsConfiguration”。EF迁移

Bar*_*SIH 4 entity-framework ef-migrations

我有两个上下文和一个数据库。

尝试添加数据库迁移(add-migrations)时出现此错误。

我将EF更新到6.2。

我检查了并使用了configuration.cs文件

internal sealed class Configuration : DbMigrationsConfiguration<MSiH.CigaretteContext>
Run Code Online (Sandbox Code Playgroud)

PM> add-migration-配置MSiH.DataAccess.CigaretteContext -Verbose cmdlet在命令管道位置1处的Add-Migration为以下参数提供值:名称:使用StartUp项目'GridAndMap'的初始值。使用NuGet项目“ GridAndMap”。

System.Data.Entity.Migrations.Infrastructure.MigrationsException: The type
 'MSiH.CigaretteContext' does not inherit from 
'System.Data.Entity.Migrations.DbMigrationsConfiguration'. 
Migrations configuration types must extend from
'System.Data.Entity.Migrations.DbMigrationsConfiguration'.
at System.Data.Entity.Utilities.TypeExtensions.CreateInstance[T]
(Type type, Func`3 typeMessageFactory, Func`2 exceptionFactory)
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.ScaffoldRunner.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.Scaffold(String migrationName,    String language, String rootNamespace, Boolean ignoreChanges)
 at System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name, Boolean force, Boolean ignoreChanges)
 at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0()
 at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
 The type 'MSiH.EyePaid.CigaretteWebApp.DataAccess.CigaretteContext' does not inherit  
 from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. Migrations 
 configuration types must extend from
'System.Data.Entity.Migrations.DbMigrationsConfiguration'.
Run Code Online (Sandbox Code Playgroud)

更新资料

我正在跟踪一个有关如何在多个上下文中使用EF迁移的示例

Enable-Migrations -ContextTypeName Foo.CigaretteContext
Run Code Online (Sandbox Code Playgroud)

该命令给出错误:

Add-Migration -configuration Foo.CigaretteContext Initial
Run Code Online (Sandbox Code Playgroud)

该命令有效:

Add-Migration Initial
Run Code Online (Sandbox Code Playgroud)

Yul*_*dra 5

ConfigurationConfigurationTypeName参数指的是从派生的类DbMigrationsConfiguration

您所做的是指从派生的类DbContext

您应该这样做。

Add-Migration -Configuration MSiH.MigrationDatabaseIfAny.Configuration Initial
Run Code Online (Sandbox Code Playgroud)

PS:MigrationDatabaseIfAny是目录名称。如果您的Configuration班级位于目录下,则不要删除它。