public virtual Expression Translate(FileContextQueryExpression queryExpression, Expression expression) { _queryExpression = queryExpression; _clientEval = false; _projectionMembers.Push(new ProjectionMember()); var expandedExpression = _queryableMethodTranslatingExpressionVisitor.ExpandWeakEntities(_queryExpression, expression); var result = Visit(expandedExpression); if (result == null) { _clientEval = true; expandedExpression = _queryableMethodTranslatingExpressionVisitor.ExpandWeakEntities(_queryExpression, expression); result = Visit(expandedExpression); _projectionMapping.Clear(); } _queryExpression.ReplaceProjectionMapping(_projectionMapping); _queryExpression = null; _projectionMapping.Clear(); _projectionMembers.Clear(); return(result); }