是否可以从包管理器控制台运行自定义种子设定方法?

时间:2016-12-01 11:47:22

标签: entity-framework-6 ef-migrations

在程序包管理器控制台中运行Update-Database时,它会运行种子进程。是否可以运行其他命令来运行其他播种命令?

类似的东西:

Seed-Test-Data

这会将一些测试数据播种到开发人员本地数据库。

我不想在普通的种子方法中运行此命令,因为在迁移运行时,它会在生产数据库上运行。

1 个答案:

答案 0 :(得分:0)

只需使用常规种子,但请检查上下文使用的服务器并采取相应措施。白名单列出了dev数据库,黑名单列出了prod服务器:

192.168.1.67:80/path/to/video.mp4

您还可以添加一个设置来检查web.config中的环境:

internal sealed class Configuration : DbMigrationsConfiguration<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
    {
        if (context.Database.Connection.DataSource != "ProductionServer")
        {
            if (!context.MyTable.Any())  // If table is empty, seed it...
            {
                context.MyTable.AddOrUpdate(
                  p => p.ID,
                       new MyTable{ ID = 1, FullName = "Mary Peters" },
                       new MyTable{ ID = 2, FullName = "Mike Lambson" },
                       new MyTable{ ID = 3, FullName = "Steve Miller" }
                );
            }


        }
        ...
    }
}