C# 如何在c语言中有条件地执行Fluent Migrator脚本#

C# 如何在c语言中有条件地执行Fluent Migrator脚本#,c#,fluent-migrator,C#,Fluent Migrator,我的应用程序使用c#编写的桌面应用程序和窗口服务代码。 业务逻辑和数据库层都相同。我正在使用Fluent Migrator在数据库中执行CRUD操作。 我想从桌面应用程序和窗口服务添加一些表。 有谁知道我是如何从同一个文件中分出来的。i、 e迁移文件名 “M01\u Createtble\u表1”代码如下: [Tags("service")] [Tags("config")] [SchemaMigration("1.1.12")] public class M01_Cre

我的应用程序使用c#编写的桌面应用程序和窗口服务代码。 业务逻辑和数据库层都相同。我正在使用Fluent Migrator在数据库中执行CRUD操作。 我想从桌面应用程序和窗口服务添加一些表。 有谁知道我是如何从同一个文件中分出来的。i、 e迁移文件名 “M01\u Createtble\u表1”代码如下:

[Tags("service")]
    [Tags("config")]
    [SchemaMigration("1.1.12")]
    public class M01_Createtble_table1: ForwardOnlyMigration
    {
        public override void Up()
        {
            string schemaName = "abc";
            string tableName = "table1";

            if (!Schema.Schema(schemaName).Table(tableName).Exists())
            {
                Create.Table(tableName).InSchema(schemaName)
                      .WithColumn("_id").AsInt32().NotNullable()
                .WithColumn("clo1").AsString(255).NotNullable().NotNullable();              


                Create.PrimaryKey("pk_" + tableName + "_id").OnTable(tableName).WithSchema(schemaName).Column("id");
            }
        }
    }
在这里,哪个类包括[Tags(“service”)]从窗口服务运行的标记,而不是从桌面应用程序运行的标记


请给我解决方案,如果有的话

看起来您可以通过以下方式完成:

  • 实现您自己的服务,将当前应用程序的类型参数(“服务”或“桌面”)注入其中
  • 然后在这个服务中实现一个方法,该方法将获取类型的标记属性值列表作为参数,并检查它是否包含相应的标记(“服务”/“桌面”)
  • 然后将此服务注入到迁移()中,并调用在上一步中实现的方法来检查是否应该执行迁移