FluentMigrator — выполнение файла/скрипта ресурсов

Я пытаюсь перенести одну из своих баз данных с помощью FluentMigrator. Одна из миграций пытается выполнить скрипт. Я подумал: я хочу только отправить 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

Структура проекта

ProjectExplorer

Ошибка

201506021451: Миграция M116_Init_RoleManagement ======================== Начало транзакции

Откат транзакции

Недопустимый путь входа


person JDurstberger    schedule 29.06.2015    source источник


Ответы (1)


Ответ довольно очевиден: доступ к файлу ресурсов через 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);
    }
}
person JDurstberger    schedule 30.06.2015