如何复制整个数据库与实体框架

本文关键字:数据库 实体 框架 何复制 复制 | 更新日期: 2023-09-27 18:05:50

此任务的目的是将包含所有实体默认值的数据库复制到新创建的数据库中。该任务将在程序第一次创建数据库时调用,因此新创建的数据库将被来自默认值数据库的值填充。

复制粘贴数据库的问题是,我的默认值数据库有混乱的主键。每个实体的主键值顺序不一致

我想要的是为程序创建一个新的数据库,从另一个数据库复制的值,但每个实体都有连续的主键(1,2,3,4,5没有跳转)。

要求来自默认值数据库的结构引用必须保持为实体。例如,当复制实体A从5重置为id=1时,则所有引用也更改为1。

我怎样才能做到这一点?是否有一个快速的方法来做,而不是手动复制每个实体?因为它是一个相当大的数据库。

如何复制整个数据库与实体框架

注意:默认的数据库上下文与新创建的数据库上下文相同。

几个月前我自己也做过这样的任务。没有自动的方法。你必须手动操作。我想分享一下我曾经使用过的步骤。

第一步:

我通过初始化(delete dataPK Reseed)旧的db创建了一个新的db(即Migrated)。之后,我有一个旧的db(即模式只有精确的副本。没有数据)

下面是一个表的脚本

Use Migrated;
GO
delete from IpOccupantNotes
GO
--To Reseed the PK
DBCC CHECKIDENT ('[IpOccupantNotes]', RESEED, 0) 
GO

步骤2:

之后,我从旧数据库(在我的情况下是Legacy)插入了相关数据,如下所示。

INSERT INTO [Migrated].[dbo].[IpOccupantNotes] (Name, ZipCode)
select  a.Name,a.ZipCode from [Legacy].[dbo].[IpOccupantNotes] as a;
GO

注:如果您有任何问题,请随时提问。我会帮你的