EF Coreコードの最初の移行の中でデータ移行を行う方法は?

c# entity-framework entity-framework-core

質問

私はコードファースト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クエリを書くことができるような接続文字列を取得する方法も見つけられません。

どのように私はこれを行うことができる他のアイデア?

受け入れられた回答

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

EF Coreのソースコードは、 https://github.com/aspnet/EntityFramework/tree/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrationsにあるマイグレーションの実装を調べることができます

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



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ