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);
}
}
Файл ресурса
Projectstructure
ошибка
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);
}
}