EF6.1 启用迁移不起作用

EF6.1 enable-migrations does not work

我的数据 (EF 6.1.3) class 项目中有一个现有的本地数据库和一个 DbContext 实例。我想将当前模式作为初始模式。当我 运行 这个命令时:

enable-migrations

已在 class 项目 MyProject.Data 中创建文件夹 Migrations 和 class 名为 Configuration(类型 MyProject.Data.Migrations.Configuration)(应该如此)。不过,我在控制台中收到下一个错误 window:

The migrations configuration type 'MyProject.Data.Migrations.Configuration' was not be found in the assembly 'MyProject.Data'.

奇怪的是它位于这个项目中,具有完全相同的命名空间。作为具体实现,我可以提及的是,我的 DbContext 没有引用应用程序配置文件中的连接字符串,它具有私有构造函数,并且它通过静态 Create 方法从自定义应用程序配置文件中接收连接字符串。

public MyEntities : DbContext
{
    private ctor(string connectionString) : base(connectionString) { ... }

    public static MyEntities Create(string connectionString)
    {
        return new MyEntities(connectionString);
    }
}

有谁知道为什么会这样?我无法进入下一步并添加初始配置迁移。

EF 迁移需要能够创建 DbContext 的实例。添加一个 public 默认构造函数。默认情况下,它会在启动项目的配置文件中查找与上下文同名的连接字符串。您可以通过使用不同的连接字符串名称调用 base() 来更改它。

public MyEntities : DbContext
{
    public MyEntities () : base("DefaultConnection") {}
}