public static bool IsLocalCollection(this Expression expression, TranslatorContext context) =>
 expression != null &&
 !expression.IsProjection() &&
 !expression.IsGroupingExpression() &&
 !expression.IsEntitySet() &&
 !expression.IsSubqueryExpression() &&
 expression.Type != WellKnownTypes.String &&
 expression.Type.IsOfGenericInterface(WellKnownInterfaces.EnumerableOfT) &&
 (IsEvaluableCollection(context, expression) || IsForeignQuery(expression));
Example #2
0
 internal TranslatedQuery <TResult> Translate <TResult>(Expression expression, CompilerConfiguration compilerConfiguration)
 {
     try {
         var context = new TranslatorContext(session, compilerConfiguration, expression);
         return(context.Translator.Translate <TResult>());
     }
     catch (Exception ex) {
         throw new QueryTranslationException(String.Format(
                                                 Strings.ExUnableToTranslateXExpressionSeeInnerExceptionForDetails, expression.ToString(true)), ex);
     }
 }
 public static bool IsLocalCollection(this Expression expression, TranslatorContext context)
 {
     return(expression != null &&
            !expression.IsProjection() &&
            !expression.IsGroupingExpression() &&
            !expression.IsEntitySet() &&
            !expression.IsSubqueryExpression() &&
            expression.Type != typeof(string) &&
            expression.Type.IsOfGenericInterface(typeof(IEnumerable <>)) &&
            (IsEvaluableCollection(context, expression) || IsForeignQuery(expression)));
 }
        // Constructors

        /// <exception cref="InvalidOperationException">There is no current <see cref="Session"/>.</exception>
        internal Translator(TranslatorContext context)
        {
            this.context = context;
            state        = new TranslatorState(this);
        }
 private static bool IsEvaluableCollection(TranslatorContext context, Expression expression) =>
 !expression.Type.IsOfGenericInterface(WellKnownInterfaces.QueryableOfT) &&
 context.Evaluator.CanBeEvaluated(expression);
        // Constructors

        /// <exception cref="InvalidOperationException">There is no current <see cref="Session"/>.</exception>
        internal Translator(TranslatorContext context, CompiledQueryProcessingScope compiledQueryScope)
        {
            this.compiledQueryScope = compiledQueryScope;
            this.context            = context;
            state = new TranslatorState(this);
        }
 private static bool IsEvaluableCollection(TranslatorContext context, Expression expression)
 {
     return(!expression.Type.IsOfGenericInterface(typeof(IQueryable <>)) && context.Evaluator.CanBeEvaluated(expression));
 }