public static void BulkInsert <T>(this DbSet <T> dbSet, IEnumerable <T> data) where T : class { // Resolve Service var serviceFactory = new ServiceFactory <T>(dbSet); IBulkInsertService <T> bulkInsertService = serviceFactory.CreateBulkInsert(); // Perform Bulk Insert bulkInsertService.WriteToServer(data); }
public IBulkMergeService <TEntity> CreateBulkMerge() { ICommandProcessing <SqlTransaction> commandProcessor = _commandProcessorFactory.Create(); IDatabaseContext <SqlConnection, SqlTransaction> databaseContext = _databaseContextFactory.Create(); IMappingAdapter <TEntity> mappingAdapter = _mappingAdapterFactory.Create(); IBulkInsertService <TEntity> bulkInsert = CreateBulkInsert(databaseContext, mappingAdapter); ICommandService <TEntity> commandService = CreateCommandService(commandProcessor, mappingAdapter); return(new BulkMergeService <TEntity>( bulkInsertService: bulkInsert, commandService: commandService )); }
public BulkMergeService(IBulkInsertService <TRecord> bulkInsertService, ICommandService <TRecord> commandService) { _bulkInsertService = bulkInsertService ?? throw new ArgumentNullException(nameof(bulkInsertService)); _commandService = commandService ?? throw new ArgumentNullException(nameof(commandService)); }