在执行代码优先迁移期间上载映像

时间:2017-10-10 19:53:40

标签: c# ef-migrations

好的......所以我甚至不知道这是否有可能。是否可以在代码首次迁移的初始阶段上传图像文件?例如,在创建初始站点用户或具有纵向图像的管理员用户时,是否可以在初始创建该用户期间上载该图像?

我找不到任何与SO或网络相关的内容甚至可以提出一个可行的解决方案,所以这可能是第一次尝试这样的事情。

1 个答案:

答案 0 :(得分:1)

  1. 首先,创建新的迁移文件(或使用现有的文件)。
  2. Inside Up()方法可以输入代码 文件上传,以及用于从中删除文件的Down()方法代码 repo(如果你想恢复迁移)。
  3. 以下是进行远程上传的众多可能方法之一,这是最简单的方法之一:

    using (var webClient = new WebClient())
    {
       webClient.UploadFile("ftp://localhost/samplefile.jpg", "samplefile.jpg");
    }
    

    为此,您应该将using System.Net;添加到迁移文件中。此外,显然您需要处理上传权限和凭据,具体取决于您使用的远程仓库的类型。

    修改

    使用File对象更加轻松。以下是迁移类的完整代码:

    using System;
    using System.Data.Entity.Migrations;
    using System.IO;
    
    public partial class MigrationWithFileCopy : DbMigration
    {
        public override void Up()
        {
            File.Copy("sourceFile.jpg", "destinationFile.jpg");
        }
    
        public override void Down()
        {
            File.Delete("destinationFile.jpg");
        }
    }