我的数据(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);
}
}
有谁知道为什么会这样?我无法转到下一步并添加初始配置迁移。
答案 0 :(得分:2)
EF迁移需要能够创建DbContext的实例。添加公共默认构造函数。默认情况下,它会在启动项目的配置文件中查找与您的上下文同名的连接字符串。您可以通过使用不同的连接字符串名称调用base()
来更改它。
public MyEntities : DbContext
{
public MyEntities () : base("DefaultConnection") {}
}