我正在尝试使用 Effort 来测试我的应用程序,但是如果在上下文中启用了代码优先迁移,那么它会引发以下异常:
System.InvalidOperationException:为上下文“XDbContext”启用了迁移,但数据库不存在或不包含映射表。使用迁移来创建数据库及其表,例如通过从包管理器控制台运行“更新数据库”命令。
如果我禁用迁移,那么一切正常。
我如何阻止实体甚至出于测试目的考虑迁移。
我正在尝试使用 Effort 来测试我的应用程序,但是如果在上下文中启用了代码优先迁移,那么它会引发以下异常:
System.InvalidOperationException:为上下文“XDbContext”启用了迁移,但数据库不存在或不包含映射表。使用迁移来创建数据库及其表,例如通过从包管理器控制台运行“更新数据库”命令。
如果我禁用迁移,那么一切正常。
我如何阻止实体甚至出于测试目的考虑迁移。
我在单元测试项目中不断遇到同样的错误。我通过调用 CreateIfNotExist() 函数来修改 TestInitialize 函数来解决它
[TestInitialize]
public void Initialize()
{
DbConnection connection = Effort.DbConnectionFactory.CreateTransient();
context = new MyAccessContext(connection);
context.Database.CreateIfNotExists();
service = new YourClass(context);
}
几种方法。您可以将数据库初始化程序设置为 null:
Database.SetInitializer<DatabaseContext>(null);
您可以在 web.config 中禁用初始化程序:https ://msdn.microsoft.com/en-us/data/jj556606.aspx?f=255&MSPPError=-2147217396#Initializers
如果您的模型已经是最新的,只需确保您禁用了自动迁移:
AutomaticMigrationsEnabled = false;