protected override Expression VisitQuerySourceReference(QuerySourceReferenceExpression expression)
        {
            if (expression.ReferencedQuerySource is JoinClause)
            {
                var clause = (JoinClause)expression.ReferencedQuerySource;
                JoinExpressionTreeVisitor joinExpressionTreeVisitor = new JoinExpressionTreeVisitor(clause.InnerSequence);
                entityLogicalName = joinExpressionTreeVisitor.EntityLogicalName;
            }
            else if (expression.ReferencedQuerySource is MainFromClause)
            {
                var clasue = (MainFromClause)expression.ReferencedQuerySource;
                MainFromEntityClauseVisitor mainFromEntityClauseVisitor = new MainFromEntityClauseVisitor(clasue);
                entityLogicalName = mainFromEntityClauseVisitor.EntityLogicalName;
            }

            return(expression);
        }
        protected override Expression VisitQuerySourceReference(QuerySourceReferenceExpression expression)
        {
            var tt = expression.ReferencedQuerySource.GetType();

            if (expression.ReferencedQuerySource is JoinClause)
            {
                var clasue = (JoinClause)expression.ReferencedQuerySource;
                JoinExpressionTreeVisitor joinExpressionTreeVisitor = new JoinExpressionTreeVisitor(clasue.InnerSequence);
                MemberContainingType = joinExpressionTreeVisitor.MemberContainingType;
                EntityLogicalName    = joinExpressionTreeVisitor.EntityLogicalName;
            }
            else if (expression.ReferencedQuerySource is MainFromClause)
            {
                var clasue = (MainFromClause)expression.ReferencedQuerySource;
                MainFromEntityClauseVisitor mainFromEntityClauseVisitor = new MainFromEntityClauseVisitor(clasue);
                MemberContainingType = mainFromEntityClauseVisitor.EntityType;
                EntityLogicalName    = mainFromEntityClauseVisitor.EntityLogicalName;
            }

            return(expression);
        }