protected override IStream <TSource> CreateOutputStream(UpdateEntityFrameworkCoreArgs <TEntity, TCtx, TSource> args) { var dbContextStream = args.DbContextStream.Observable.First(); var ret = args.SourceStream.Observable .Chunk(args.BatchSize) .CombineWithLatest(dbContextStream, (i, c) => new { Context = c, Items = i.ToList() }, true) .Do(i => this.ExecutionContext.InvokeInDedicatedThread(i.Context, () => ProcessBatch(i.Items, i.Context, args.BulkLoadMode))) .FlatMap(i => PushObservable.FromEnumerable(i.Items)); return(base.CreateUnsortedStream(ret)); }
public UpdateEntityFrameworkCoreStreamNode(string name, UpdateEntityFrameworkCoreArgs <TEntity, TCtx, TSource> args) : base(name, args) { }