Esempio n. 1
0
        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);
            }
        }
Esempio n. 3
0
 public async void AddAsync(T entity)
 {
     BulkConfig bulkConfig = new BulkConfig {
         SetOutputIdentity = true
     };
     await _db.BulkInsertAsync <T>(new List <T> {
         (T)entity
     }, bulkConfig);
 }