1

FluentMigrator を使用してデータベースの 1 つを移行しようとしています。移行の 1 つがスクリプトの実行を試みます。「DLL を同僚に送りたいだけ」と思ったので、SQL スクリプトをリソース ファイルとして DLL にパックし、アクセスしようとしましたが、スクリプトが見つからないようです。

移行

[Migration(201506021451)]
public class M116_Init_RoleManagement : ForwardOnlyMigration
{
    public override void Up()
    {
        Create.Table("Role")
              .WithIdColumn()
              .WithColumn("Name").AsString().NotNullable();

        Insert.IntoTable("Role").Row(new { Name = "Administrator" });
        Insert.IntoTable("Role").Row(new { Name = "Manager" });
        Insert.IntoTable("Role").Row(new { Name = "SalesManager" });
        Insert.IntoTable("Role").Row(new { Name = "Employee" });

        Create.Table("EmployeeRole")
              .WithIdColumn()
              .WithColumn("EmployeeId").AsInt64().NotNullable()
              .WithColumn("RoleId").AsInt64().NotNullable();
        Execute.Script(Hsk.Migrations.Properties.Resources._2015021451_CreateSalesManagerRoles);
    }
}

リソース ファイル ResourceFile

プロジェクト構造

プロジェクトエクスプローラー

エラー

201506021451: M116_Init_RoleManagement 移行 ======================== トランザクションの開始

トランザクションのロールバック

不正なサインイン パス

4

1 に答える 1

2

答えは明らかです。resource-file を介してアクセスする Hsk.Migrations.Properties.Resources._2015021451_CreateSalesManagerRoles と、ファイルへのパスではなくコンテンツが返されます。

したがって、呼び出しは次のようになります

[Migration(201506021451)]
public class M116_Init_RoleManagement : ForwardOnlyMigration
{
    public override void Up()
    {
        .
        .
        . 
        Execute.Sql(Hsk.Migrations.Properties.Resources._2015021451_CreateSalesManagerRoles);
    }
}
于 2015-06-30T05:40:05.213 に答える