EF6.1启用迁移不起作用

时间:2015-10-19 12:54:06

标签: entity-framework entity-framework-6 ef-migrations

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

enable-migrations

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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