public async Task RunAsync() { var firstAppContextModels = await _firstAppContext.Commons .AsNoTracking() .Where(model => model.Code == _code) .ToListAsync(); var secondAppContextModels = await _secondAppContext.Commons .AsNoTracking() .Where(model => model.Code == _code) .ToListAsync(); await _secondAppContext.BulkDeleteAsync(secondAppContextModels); var modelsToAdd = firstAppContextModels .Select(firstModel => new Common { InternalNumber = firstModel.InternalNumber, Code = _code, Name = firstModel.Name, Updated = DateTime.Now, }) .ToList(); await _secondAppContext.BulkInsertAsync(modelsToAdd); }
private async Task DeleteAsync() { var idsToDelete = _targetModels .Select(model => model.InternalNumber) .Except(_sourceModels .Select(model => model.InternalNumber)); if (idsToDelete.Any()) { List <Common> modelsToDelete = _targetModels .Where(model => idsToDelete.Contains(model.InternalNumber)) .ToList(); await _targetContext.BulkDeleteAsync(modelsToDelete); } }