如何在EF Core代碼首次遷移中進行數據遷移?

c# entity-framework entity-framework-core

我有一個Code First EF Core項目。

在我的架構遷移中,我需要將數據遷移到外部數據庫。所以我不能回到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,而不是為處理多個數據庫而設計的。

您可以通過https://github.com/aspnet/EntityFramework/tree/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations在EF Core的源代碼中自行檢查遷移的實現。

要在數據庫之間完成數據遷移,您需要在EF Core遷移之外編寫自己的代碼。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow