c# - 如何在 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,而不是为处理多个数据库而设计。

您可以在 EF Core 的源代码中自行检查迁移的实现 https://github.com/aspnet/EntityFramework/tree/1.0.0/src/Microsoft.EntityFrameworkCore.Relational/Migrations .

要完成数据库之间的数据迁移,您需要在 EF Core 迁移之外编写自己的代码。

关于c# - 如何在 EF Core 代码首次迁移中进行数据迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38568475/

相关文章:

c# - Visual Studio 2008,定时器,C#

c# - 为什么 C# 不支持返回引用?

c# - 从查询字符串开始时比较 EntitySQL 中的 DateTime 值

c# - 构建 linq 查询以获得最快性能的正确方法?

C# WebView 在 metro 中崩溃

c# 可以将登录凭据(非显式)与 wsmanconnectioninfo 一起使用吗?

c# - Entity Framework 数据库首先从基类继承模型

c# - 每个类型表中的级联删除 (TPT) EF Core 5

c# - EF Core 拥有的属性状态传播到父实体

c# - 如何在 EF Core Like 函数中使用通配符