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

Projectstructure

ProjectExplorer

ошибка

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

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

Незаконный вход в путь

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);
    }
}
Другие вопросы по тегам