Как я могу использовать миграции в производстве, но не в тесте? - PullRequest
3 голосов
/ 20 января 2020

У меня есть sql db в производстве, (и dev), но я хотел бы использовать память для своих тестов. В моем конструкторе классов я звонил dbcontext.database.migrate(), но в памяти db это не нравится. Если я возьму его из конструктора, мой тест сработает, но я не знаю, куда поместить его для производственного кода, который будет его использовать.

Constructor:

public ParseAndRefreshDealerData(DbContextExtensions dbContext, IAzureStorage azureStorage)
    {
        _dbContext = dbContext;
        _azureStorage = azureStorage;
    }

Любой предложения?

1 Ответ

5 голосов
/ 21 января 2020

Вы можете в конечном итоге использовать IsInMemory метод расширения в качестве критерия для пропуска Migrate вызова, например

if (!dbContext.Database.IsInMemory())
    dbContext.Database.Migrate();
...