当应用程序开始运行mvc时,将数据从一个数据库传播到另一个数据库

时间:2016-05-30 10:48:49

标签: c# asp.net-mvc entity-framework

我必须数据库一个是真正的数据库和第二个数据库来测试我需要真正的数据进行测试 我希望始终运行解决方案将真实数据复制到测试数据库 使用mvc c# 我想我需要这样的代码

protected void Application_Start()
{
    Database.SetInitializer<LocatorContext>(new DropCreateDatabaseAlways<LocatorContext>());

    AreaRegistration.RegisterAllAreas();
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

1 个答案:

答案 0 :(得分:2)

要将数据植入数据库,您必须创建自定义数据库初始化程序,并覆盖Seed方法。

以下示例说明如何从其他数据库或其他SQL服务器提供默认数据。

您还可以使用context.Database.SqlQuery来处理/更新C#Seed方法中的数据,然后将更改推送回Sql Server /数据库。

public class SeedDbInitializer : DropCreateDatabaseAlways<MyDbContext>
 {
     protected override void Seed(MyDbContext context)
     {
        context.Database.ExecuteSqlCommand(
                                           @"SELECT * INTO targetTable
                                            FROM[sourceserver].[sourcedatabase].[dbo].[sourceTable]"
                                           );
        base.Seed(context);
     }
  }

public class MyDbContext : DbContext
 {
     public MyDbContext() : base("MyConnectionString")
     {
       Database.SetInitializer<MyDbContext>(new SeedDbInitializer());
     }
    public DbSet<User> Users { get; set; }
 }