/// <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 (node.IsSpecificMemberExpression(node.Expression.Type, EntityTableCacheHelper.TryGetPropertyList(node.Expression.Type))) { _serverWriter.ColumnName(_serverWriter.GetPropertyNameWithIdentifierFromExpression(node)); return(node); } else if (node.IsVariable()) { _serverWriter.Parameter(node.GetValueFromExpression()); return(node); } else if (node.IsHasValue()) { var me = base.VisitMember(node); _serverWriter.IsNull(); return(me); } return(base.VisitMember(node));; }