Exemple #1
0
        public ValueTask <IQueryable> Visit(ExecuteDistinctStage executeDistinctStage)
        {
            Debug.Assert(queryable != null);
            var distinctExecutor = _distinctExecutorFactory.GetDistinctExecutor(executeDistinctStage);

            return(distinctExecutor.Execute(queryable, executeDistinctStage));
        }
Exemple #2
0
 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);
 }
Exemple #3
0
 public override ValueTask <IQueryable <Entity> > ExecuteDistinct(IQueryable <Entity> queryable, ExecuteDistinctStage executeDistinctStage)
 {
     return(new ValueTask <IQueryable <Entity> >(queryable.Distinct()));
 }
Exemple #4
0
 public abstract ValueTask <IQueryable <Entity> > ExecuteDistinct(IQueryable <Entity> queryable, ExecuteDistinctStage executeDistinctStage);
Exemple #5
0
 public async ValueTask <IQueryable> Execute(IQueryable queryable, ExecuteDistinctStage executeDistinctStage)
 {
     return(await ExecuteDistinct((IQueryable <Entity>) queryable, executeDistinctStage));
 }