public ValueTask <IQueryable> Visit(ExecuteDistinctStage executeDistinctStage) { Debug.Assert(queryable != null); var distinctExecutor = _distinctExecutorFactory.GetDistinctExecutor(executeDistinctStage); return(distinctExecutor.Execute(queryable, executeDistinctStage)); }
public IDistinctExecutor GetDistinctExecutor(ExecuteDistinctStage executeDistinctStage) { if (!executors.TryGetValue(executeDistinctStage.Type, out var executor)) { var t = typeof(DefaultDistinctExecutor <>).MakeGenericType(executeDistinctStage.Type); executor = (IDistinctExecutor)Activator.CreateInstance(t); executors.Add(executeDistinctStage.Type, executor); } return(executor); }
public override ValueTask <IQueryable <Entity> > ExecuteDistinct(IQueryable <Entity> queryable, ExecuteDistinctStage executeDistinctStage) { return(new ValueTask <IQueryable <Entity> >(queryable.Distinct())); }
public abstract ValueTask <IQueryable <Entity> > ExecuteDistinct(IQueryable <Entity> queryable, ExecuteDistinctStage executeDistinctStage);
public async ValueTask <IQueryable> Execute(IQueryable queryable, ExecuteDistinctStage executeDistinctStage) { return(await ExecuteDistinct((IQueryable <Entity>) queryable, executeDistinctStage)); }