EntityFramework Saga persistance воссоздает схему в существующей БД
Я использую MT v3.0.17 с Automatonymous, я заметил, что таблица состояния экземпляра не создается, если база данных уже существует. Поскольку я направляю несколько разных автоматных конечных автоматов в одну и ту же базу данных, я бы хотел дать ей указание создавать таблицы, даже если база данных существует.
Как это может быть сделано?
Спасибо
2 ответа
Если вы используете Entity Framework, вы используете миграции для создания / обновления базы данных и связанных таблиц, как описано в документации Microsoft:
https://msdn.microsoft.com/en-us/data/dn579398.aspx
Если вы используете NHibernate, вы можете использовать методы проверки схемы, которые будут проверять и обновлять схему по мере необходимости. Это делается в модульных тестах, как показано:
Вдохновленные модульными тестами самого masstransit, мы используем миграции EF, и явно как EF, чтобы применить упомянутые миграции во время запуска
public static void Main()
{
var saga = new MySaga();
var contextFactory = new SagaWithDependencyContextFactory();
using (var context = contextFactory.CreateDbContext(Array.Empty<string>()))
{
context.Database.Migrate();
}
Func<DbContext> sagaDbContextFactory = () => contextFactory.CreateDbContext(Array.Empty<string>());
var efSagaRepository =
new EntityFrameworkSagaRepository<MySagaInstanceState>(sagaDbContextFactory);
// .. create bus etc..