【问题标题】:The type 'Context' does not inherit from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. with EF migration“上下文”类型不继承自“System.Data.Entity.Migrations.DbMigrationsConfiguration”。 EF迁移
【发布时间】:2014-07-26 23:54:21
【问题描述】:

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

我在尝试添加数据库迁移 (add-migrations) 时收到此错误。

我已将 EF 更新到 6.2。

我检查了一下,configuration.cs 文件正在使用

internal sealed class Configuration : DbMigrationsConfiguration<MSiH.CigaretteContext>

PM> add-migration -configuration MSiH.DataAccess.CigaretteContext -Verbose 命令管道位置 1 处的 cmdlet Add-Migration 为以下参数提供值: 名称:首字母 使用启动项目“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'.

更新

我正在关注example,关于如何在多个上下文中使用 EF 迁移。

Enable-Migrations -ContextTypeName Foo.CigaretteContext

这个命令给出了错误:

Add-Migration -configuration Foo.CigaretteContext Initial

此命令有效:

Add-Migration Initial

【问题讨论】:

  • 您必须展示您的“CigaretteContext”课程,否则我们无能为力。

标签: entity-framework entity-framework-migrations


【解决方案1】:

ConfigurationConfigurationTypeName 参数是指派生自 DbMigrationsConfiguration 的类。

您所做的是引用从 DbContext 派生的类。

你应该这样做。

Add-Migration -Configuration MSiH.MigrationDatabaseIfAny.Configuration Initial

PS:MigrationDatabaseIfAny 是一个目录名如果你的Configuration 类位于一个目录下,如果不只是删除它。

【讨论】:

    猜你喜欢
    • 2019-03-28
    • 1970-01-01
    • 2020-04-19
    • 2016-10-08
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多