Exemplo n.º 1
0
        protected override Expression VisitMember(MemberExpression m)
        {
            if (m.Expression != null && m.Expression.NodeType == ExpressionType.Parameter)
            {
                var builder = (Result as DbResolveResult).Builder;

                var parameterExpression = (ParameterExpression)m.Expression;
                var entityAttribute     = EntityMetadata.GetAttribute(m.Member.Name);

                builder.Append($"{Dialect.OpeningIdentifier}{entityAttribute.Name}{Dialect.ClosingIdentifier}");
            }
            else if (m.Expression != null && m.Expression.NodeType == ExpressionType.Constant)
            {
                var eval = ExpressionsHelper.EvaluateMember(m);
                var constantExpression = Expression.Constant(eval, m.Type);
                Visit(constantExpression);
                return(constantExpression);
            }
            return(m);
        }