我需要构建一个 C# 控制台应用程序来将数据从 MySql 迁移到 SQL Server。这将在运行时运行。我无法使用其他第三方工具,因为表架构与 MySql 和 SQL Server 不同。
我必须从源表生成目标实体,这些实体的表名和列名不同。
注意:我有一张名为
Customer
的桌子。该表将有几个导航属性。当批量插入客户时,我需要添加这些导航属性(保存导航实体)。
要保存数据,批量插入的理想方式是什么?我尝试使用
EFCore.BulkExtensions
似乎并不理想,因为它不像 EF Core 那样在插入后设置 Id。
我不会使用
SqlBulkCopy
,因为有很多表需要迁移。
根据可重用性的需求(是否是一次性使用?)、可扩展性的需求(是否是一个包含数百万行或行的巨大数据库?),您有多种解决方案。不过,所有解决方案都将遵循相同的过程。
您可以使用 EF 执行读/写操作,但自己编写 SQL 可能会快得多,因为您不需要那么多的脚手架。 SQL Server 还为您提供了生成插入语句的工具,以节省您编写插入语句的时间。请参阅为 SQL Server 表自动生成 INSERT 语句的最佳方法是什么?