Entity Framework 6在尝试使用Effort创建上下文时抛出迁移异常

3
我正在尝试使用Effort测试我的应用程序,但如果上下文启用了Code First迁移,则会抛出以下异常:
System.InvalidOperationException:上下文“XDbContext”启用了迁移,但数据库不存在或不包含映射表。使用迁移创建数据库及其表,例如通过从Package Manager Console运行“Update-Database”命令。
如果我禁用迁移,那么一切都正常工作。
如何停止实体甚至考虑我的测试目的的迁移。
2个回答

6

在我的单元测试项目中,我一直遇到相同的错误。通过修改TestInitialize函数并调用CreateIfNotExist()函数,我解决了这个问题。

    [TestInitialize]
    public void Initialize()
    {
        DbConnection connection = Effort.DbConnectionFactory.CreateTransient();

        context = new MyAccessContext(connection);
        context.Database.CreateIfNotExists();
        service = new YourClass(context);
    }

2
遇到了Steve描述的问题,使用Effort、Entity Framework 6.0.0和DropCreateDatabaseAlways初始化器。按照上面建议的添加CreateIfNotExists()调用解决了这个问题。然而,在更新到Entity Framework 6.1.3之后,不再需要添加context.Database.CreateIfNotExists(); - Lauri Harpf
2
我曾经遇到过同样的问题,升级到Entity Framework 6.1.3就解决了,正如Lauri Harpf所提到的那样。 - Kenci
1
注意:如果在安装Entity Framework之前安装Effort.EF6,则Effort将使用低于v 6.1.3的Entity Framework版本,这意味着它将无法正常工作。您需要手动更新它。 - Kenci

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接