Не в SQL, а в C # с использованием Entity Framework: существует ли простой способ скопировать исходную запись в другую таблицу? Определения столбцов идентичны, однако целевая таблица не имеет индексов, ключей или ограничений. У меня есть этот код, и одна строка, с которой у меня возникают проблемы, помечена:
private void HandleAutos()
{
// convert to List<auto>...
List<Model.Auto> imports = ConvertAuto();
// get all DB records in List<auto>...
List<Model.Auto> current = _dbFeed.Autoes.Where(a => a.ClientID == _targetClientID && a.Active == true).ToList();
// isolate all Inserts, Updates and Deletes...
var existing = imports.Intersect(current, new AutoIsIn()).ToList(); // should be all autos with matching VIN & SKU //
var updates = existing.Intersect(current, new AutoHasChanged()).ToList(); // should be a subset of changed resords //
var inserts = imports.Except(current, new AutoIsIn()).ToList(); // should be all the imports not in the DB //
var deletes = current.Except(imports, new AutoIsIn()).ToList(); // should be all the DB records not in imports //
// THIS IS THE BAD LINE //
deletes.ForEach(a => _dbFeed.AddToAutoArchives(a)); // <=======
// -------------------- //
deletes.ForEach(a => _dbFeed.DeleteObject(a));
updates.ForEach(a => _dbFeed.ApplyCurrentValues("Autoes", a));
inserts.ForEach(a => _dbFeed.AddToAutoes(a));
_dbFeed.SaveChanges();
}
Я знаю, что могу просмотреть свои исходные записи, создать архивную запись, скопировать каждое свойство и, наконец, добавить новый объект в коллекцию ArchiveAutos и сохранить его в БД. Прежде чем я пошел по этому пути и написал метод для копирования записи из сущности Auto в сущность AutoArchive, я хотел бы проверить, есть ли уже какая-то удивительная сладость, уже испеченная.
Знаете ли вы, есть ли?
ТИА