我有一个类似于(称之为UserTable
)
+--------+-----------+----------+
| UserId | FirstName | LastName |
+--------+-----------+----------+
| 123 | Bob | Smith |
| 456 | John | Doe |
+--------+-----------+----------+
在另一台服务器上,我有一张桌子(称之为UserBackupTable
)
+----------+--------+-----------+----------+
| Location | UserId | FirstName | LastName |
+----------+--------+-----------+----------+
| A | 123 | Bob | Smith |
| B | 456 | John | Doe |
+----------+--------+-----------+----------+
除了添加一列(Location
)之外,这两个表是相同的。我希望以比
UserTable
到UserBackupTable
var dataToCopy = userDb.UserTable.Select(user => new UserBackup
{
Location = _location,
FirstName = user.FirstName,
LastName = user.LastName
}).ToList();
backupDb.UserBackups.AddRange(dataToCopy);
当我有40多列需要手动输入时,这对我来说有效但不是很有效。如果需要,这些是数据库第一模型。
答案 0 :(得分:-1)
您是否可以在数据库层执行此操作,而不是通过ORM执行此操作,例如
SELECT *
INTO [backupDb].[dbo].[UserBackups]
FROM [dbo].[UserTable]
您需要根据操作方式修改上述内容,例如:每次递增或重新创建整个备份表,具体取决于数据的大小(只需确保删除现有表并选择作为事务的一部分替换它),但您可以通过SQL Server代理等自动化它。
请注意,SELECT INTO会创建一个新的目标表,因此不适合增量备份方法。