我有一个 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/