public virtual SelectExpression TryGetQuery([NotNull] IQuerySource querySource) { Check.NotNull(querySource, nameof(querySource)); SelectExpression selectExpression; return(QueriesBySource.TryGetValue(querySource, out selectExpression) ? selectExpression : QueriesBySource.Values.SingleOrDefault(se => se.HandlesQuerySource(querySource))); }
/// <summary> /// Get active ReadOnlyExpression /// </summary> /// <param name="querySource"></param> /// <returns></returns> public virtual ReadOnlyExpression TryGetQuery([NotNull] IQuerySource querySource) { Check.NotNull(querySource, nameof(querySource)); return(QueriesBySource.TryGetValue(querySource, out ReadOnlyExpression roe) ? roe : QueriesBySource .Values .LastOrDefault(e => e.HandlesQuerySource(querySource))); }
public override SelectExpression TryGetQuery(IQuerySource querySource) { SelectExpression selectExpression; if (QueriesBySource.TryGetValue(querySource, out selectExpression)) { return(selectExpression); } return(QueriesBySource.Values.SingleOrDefault(se => se.HandlesQuerySource(querySource))); }
public override void VisitQueryModel(QueryModel queryModel) { base.VisitQueryModel(queryModel); if (ContextOptions.FindExtension <SqlServerOptionsExtension>()?.RowNumberPaging == true) { var visitor = new RowNumberPagingExpressionVisitor(); SelectExpression mainSelectExpression; if (QueriesBySource.TryGetValue(queryModel.MainFromClause, out mainSelectExpression)) { visitor.Visit(mainSelectExpression); } foreach (var additionalSource in queryModel.BodyClauses.OfType <IQuerySource>()) { SelectExpression additionalFromExpression; if (QueriesBySource.TryGetValue(additionalSource, out additionalFromExpression)) { visitor.Visit(mainSelectExpression); } } } }