2016-07-25 16 views
1

私はコードファーストEFコアプロジェクトを持っています。EFコアコードの最初の移行でデータ移行を行う方法は?

私のスキーマの移行では、外部データベースへのデータ移行が必要です。だから私はmigrationBuilder.Sql()に落ちることはできません。私がする必要があるのは、ローカルデータベースでクエリを実行し、返されたデータを外部データベースに挿入することです。言い換えれば、私はこのような何かやりたい:

// Obviously this is pseudo-code; these interfaces mostly don't exist 
protected override void Up(MigrationBuilder migrationBuilder) 
{ 
    var results = migrationBuilder.GetQueryResults("some query"); 
    using (var extDb = new ExternalDb()) 
    { 
    foreach (var row in results) 
    { 
     InsertToExternalDb(row, extDb); 
    } 
    } 
} 

をしかし、私は、現在のデータベースから行を返すMigrationBuilder上の任意の方法を見つけることができない、と私も接続を取得する方法を見つけることができません現在のデータベースに生のADOクエリを書き込むことができるような文字列です。

私はこれをどのように行うことができるでしょうか?

答えて

3

このシナリオは、EFコア1.0.0の移行機能には含まれません。 MigrationBuilder APIは、データベーススキーマを変換するためのSQLを構築するように設計されており、複数のデータベースを扱うようには設計されていません。

EFコアのソースコードhttps://github.com/aspnet/EntityFramework/tree/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrationsで自分自身で移行の実装を検査できます。

データベース間のデータ移行を行うには、EFコアマイグレーションの外に独自のコードを記述する必要があります。

+0

ええ、私はGitHubのページを尋ねてもそれを見つけました。とにかくありがとう。 –

関連する問題