Пример #1
0
 /// <summary>
 /// Visits the children of the <see cref="T:System.Linq.Expressions.MemberExpression"/>.
 /// </summary>
 /// <returns>
 /// The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.
 /// </returns>
 /// <param name="node">The expression to visit.</param>
 protected override Expression VisitMember(MemberExpression node)
 {
     if (QueryHelper.IsSpecificMemberExpression(node, node.Expression.Type, CacheHelper.TryGetPropertyList(node.Expression.Type)))
     {
         _writer.ColumnName(QueryHelper.GetPropertyNameWithIdentifierFromExpression(node));
         return(node);
     }
     else if (QueryHelper.IsVariable(node))
     {
         _writer.Parameter(QueryHelper.GetValueFromExpression(node));
         return(node);
     }
     else if (QueryHelper.IsHasValue(node))
     {
         var me = base.VisitMember(node);
         _writer.IsNull();
         return(me);
     }
     return(base.VisitMember(node));;
 }