C# FluentMigrator版本控制刷新视图

C# FluentMigrator版本控制刷新视图,c#,fluent-migrator,C#,Fluent Migrator,我正在使用Fluent Migrator更新数据库。向上和向下功能工作正常。下一步是创建视图。我希望从我拥有的.SQL文件中运行这些。我希望每次运行所有迁移后都能运行此程序 我目前拥有的是: var blah = new MigrationConventions(); var maintenanceLoader = new MaintenanceLoader(_migrate, blah); maintenanceLoader.ApplyMaintenance(MigrationStage.Af

我正在使用Fluent Migrator更新数据库。向上和向下功能工作正常。下一步是创建视图。我希望从我拥有的.SQL文件中运行这些。我希望每次运行所有迁移后都能运行此程序

我目前拥有的是:

var blah = new MigrationConventions();
var maintenanceLoader = new MaintenanceLoader(_migrate, blah);
maintenanceLoader.ApplyMaintenance(MigrationStage.AfterAll);
还有一节课

[Maintenance(MigrationStage.AfterAll)]
public class ViewMaintenance
{
    public ViewMaintenance() {
        var blah = 123;
    }
}
这不会触发,因为在maintenanceLoader中可以找到0个元素。我正在插入_migrate,其定义如下:

var runnerContext = new RunnerContext(new TextWriterAnnouncer(UpdateText));
_migrate = new MigrationRunner(
 Assembly.GetExecutingAssembly(), 
 runnerContext,
  new SqlServerProcessor(
  new SqlConnection(connectionString), 
  new SqlServer2012Generator(), 
  new TextWriterAnnouncer(UpdateText), 
  new ProcessorOptions(), 
  new SqlServerDbFactory()));
为什么不能扫描
程序集.getExecutionGassembly()
并找到
[维护(MigrationStage.AfterAll)]


我还希望ViewMaintenance类能够运行迁移类所具有的
Execute.Sql(
)。

我下载了源代码并找到了它

在我希望运行维护的类中,我需要继承
:Migration
类,就像migrations(duh..)一样。然后,它将可以访问它在迁移中可以访问的所有内容,包括
Execute.Sql(

当它从继承时,Fluent Migrator中的反射将搜索它,找到它,并使用设置为在所有迁移运行后运行它的属性

本部分不需要:

var blah = new MigrationConventions();
var maintenanceLoader = new MaintenanceLoader(_migrate, blah);
maintenanceLoader.ApplyMaintenance(MigrationStage.AfterAll);
整洁:)