FluentMigrator - 执行资源文件/脚本

时间:2015-06-29 14:02:40

标签: c# sql dll fluent-migrator

我尝试使用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 个答案:

答案 0 :(得分: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);
    }
}