我如何在生产中使用迁移,而不是在测试中使用?

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();