我正在使用带有 Automatonymous 的 MT v3.0.17,我注意到如果数据库已经存在,则不会创建实例状态表。由于我将多个不同的自动状态机指向同一个数据库,我想指示它创建表,即使数据库存在。
如何才能做到这一点?
谢谢
我正在使用带有 Automatonymous 的 MT v3.0.17,我注意到如果数据库已经存在,则不会创建实例状态表。由于我将多个不同的自动状态机指向同一个数据库,我想指示它创建表,即使数据库存在。
如何才能做到这一点?
谢谢
如果您使用的是实体框架,则可以使用迁移来创建/更新数据库和关联的表,如 Microsoft 所述:
https://msdn.microsoft.com/en-us/data/dn579398.aspx
如果您使用 NHibernate,则可以使用 Schema 验证方法,它将根据需要验证和更新模式。这是在单元测试中完成的,如下所示:
受 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..