public void AppendMergeJoinKeys(SqlQueryBuilder queryBuilder, IEnumerable <MemberExpression> expressions)
        {
            bool first = true;

            foreach (MemberExpression expression in expressions)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    queryBuilder.Append(" AND ");
                }

                AppendSourceAndTargetOperator(queryBuilder, expression, ExpressionType.Equal);
            }
        }
        protected void AppendUpdateStatements(SqlQueryBuilder queryBuilder, IEnumerable <MemberAssignment> assignments)
        {
            queryBuilder.Append(" SET ");

            bool first = true;

            foreach (MemberAssignment assignment in assignments)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    queryBuilder.Append(", ");
                }

                Expression asssignExpression = ExpressionHelper.MakeAssign(assignment);

                _statementGeneration.AppendPart(queryBuilder, asssignExpression);
            }
        }
        public void AppendPart(SqlQueryBuilder queryBuilder, Expression expression)
        {
            _queryBuilder = queryBuilder;

            Visit(expression);
        }