我如何在生产中使用迁移,而不是在测试中使用?
How can I use migrations in production, but not in test?
我在生产(和开发)中有一个 sql 数据库,但我想在内存中用于我的测试。在我的 class 构造函数中,我调用了 dbcontext.database.migrate()
,但内存数据库不喜欢那样。如果我将它从构造函数中取出,我的测试工作正常,但我不知道将它放在哪里以便生产代码使用它。
Constructor:
public ParseAndRefreshDealerData(DbContextExtensions dbContext, IAzureStorage azureStorage)
{
_dbContext = dbContext;
_azureStorage = azureStorage;
}
有什么建议吗?
您最终可以使用 IsInMemory 扩展方法作为跳过 Migrate
调用的标准,例如
if (!dbContext.Database.IsInMemory())
dbContext.Database.Migrate();
我在生产(和开发)中有一个 sql 数据库,但我想在内存中用于我的测试。在我的 class 构造函数中,我调用了 dbcontext.database.migrate()
,但内存数据库不喜欢那样。如果我将它从构造函数中取出,我的测试工作正常,但我不知道将它放在哪里以便生产代码使用它。
Constructor:
public ParseAndRefreshDealerData(DbContextExtensions dbContext, IAzureStorage azureStorage)
{
_dbContext = dbContext;
_azureStorage = azureStorage;
}
有什么建议吗?
您最终可以使用 IsInMemory 扩展方法作为跳过 Migrate
调用的标准,例如
if (!dbContext.Database.IsInMemory())
dbContext.Database.Migrate();