是否可以从包管理器控制台 运行 自定义播种方法?
Is It possible to run a custom seeding method from the package manager console?
当您在包管理器控制台中 运行 更新数据库时,它 运行 是一个种子进程。是否可以 运行 一个与 运行 其他播种命令不同的命令?
类似于:
Seed-Test-Data
这会将一些测试数据播种到开发人员的本地数据库。
我不想在正常的种子方法中 运行 这个命令,因为当迁移 运行.
时,那会在生产数据库上 运行
只需使用常规种子,但要检查上下文使用的服务器并采取相应措施。将开发数据库列入白名单或将生产服务器列入黑名单:
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" }
);
}
}
...
}
}
您还可以添加一个设置来检查 web.config 中的环境:
if (ConfigurationManager.AppSettings["Environment"] == "DEV")
{
...
}
当您在包管理器控制台中 运行 更新数据库时,它 运行 是一个种子进程。是否可以 运行 一个与 运行 其他播种命令不同的命令?
类似于:
Seed-Test-Data
这会将一些测试数据播种到开发人员的本地数据库。
我不想在正常的种子方法中 运行 这个命令,因为当迁移 运行.
时,那会在生产数据库上 运行只需使用常规种子,但要检查上下文使用的服务器并采取相应措施。将开发数据库列入白名单或将生产服务器列入黑名单:
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" }
);
}
}
...
}
}
您还可以添加一个设置来检查 web.config 中的环境:
if (ConfigurationManager.AppSettings["Environment"] == "DEV")
{
...
}