Вы можете определить модель объекта для своего клиента и всех связанных объектов, которые вы хотите перенести. Затем вы должны точно определить структуру БД на тестовом сервере, чтобы модель сущностей могла использоваться для обоих серверов.
Базовый сценарий может быть (псевдокод):
Customer customer = null;
using (var context = new MyContext("ProductionConnectionString"))
{
// You must use Include to load all related data
customer = context.Customers.Include("...").Where(...).Single();
}
using (var context= new MyContext("TestConnectionString"))
{
context.Customers.AddObject(customer); // Inserts everything
using (var scope = new TransactionScope())
{
context.SaveChanges();
scope.Complete();
}
}
Проблема будет, если часть данных уже существует в БД. В таком случае вам сначала нужно будет загрузить клиента из тестовой БД и вручную объединить данные от производственного клиента в загруженный, чтобы уже существующие данные не вставлялись снова, а измененные / удаленные данные обновлялись / удалялись в тестовой базе данных.