2016-05-30 9 views
1

私はデータベースに1つのデータベースと2番目のデータベースをテストする必要があります。私は実際のデータをテストする必要があります 私はいつもソリューションが実際のデータMVCのC# を使用してテストデータベース に私はあなたのデータベースにデータをシードするには、このアプリケーションの起動時に1つのデータベースから他のデータベースへのシードデータ

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

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

答えて

2

のようなコードが必要だと思う、あなたはカスタムデータベースの初期化子を作成し、シードメソッドをオーバーライドする必要があります。

次の例は、別のデータベースまたは別の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; } 
} 
関連する問題