簡體   English   中英

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

[英]How to do data migrations inside an EF Core code first migration?

我有一個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遷移之外編寫自己的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM