private ShardingQueryable(IQueryable <T> source) { _source = source; _streamMergeContextFactory = ShardingContainer.Services.GetService <IStreamMergeContextFactory>(); var routingRuleEngineFactory = ShardingContainer.Services.GetService <IRoutingRuleEngineFactory>(); _routeRuleContext = routingRuleEngineFactory.CreateContext <T>(source); }
public StreamMergeContext <T> Create <T>(IQueryable <T> queryable, RouteRuleContext <T> ruleContext) { return(new StreamMergeContext <T>(queryable, _routingRuleEngineFactory.Route(queryable, ruleContext), _shardingParallelDbContextFactory, _shardingScopeFactory)); }