我使用MT v3.0.17与Automatonymous, 我注意到,如果数据库已经存在,则不会创建实例状态表。由于我将多个不同的自动命名状态机指向同一个数据库,因此我想指示即使数据库存在也要创建表。
如何做到这一点?
由于
答案 0 :(得分:0)
如果您使用的是Entity Framework,则可以使用迁移来创建/更新数据库和关联的表,如Microsoft所述:
https://msdn.microsoft.com/en-us/data/dn579398.aspx
如果您使用的是NHibernate,则可以使用Schema验证方法,该方法将根据需要验证和更新架构。这在单元测试中完成,如图所示:
答案 1 :(得分:0)
受到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..