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 AddAsync() { var idsToAdd = _sourceModels .Select(model => model.InternalNumber) .Except(_targetModels .Select(model => model.InternalNumber)); if (idsToAdd.Any()) { IEnumerable <Common> GetModelsToAdd() { var sourceModelsToAdd = _sourceModels .Where(model => idsToAdd.Contains(model.InternalNumber)); foreach (var sourceModel in sourceModelsToAdd) { yield return(new Common { InternalNumber = sourceModel.InternalNumber, Code = sourceModel.Code, Name = sourceModel.Name, Updated = DateTime.Now, }); } } List <Common> modelsToAdd = GetModelsToAdd().ToList(); await _targetContext.BulkInsertAsync(modelsToAdd); } }
public async void AddAsync(T entity) { BulkConfig bulkConfig = new BulkConfig { SetOutputIdentity = true }; await _db.BulkInsertAsync <T>(new List <T> { (T)entity }, bulkConfig); }