DbExpressions.MySqlQueryTranslator.VisitDeleteExpression C# (CSharp) Method

VisitDeleteExpression() protected method

Translates the deleteExpression into a string representation.
protected VisitDeleteExpression ( DbDeleteExpression deleteExpression ) : DbExpression
deleteExpression DbDeleteExpression The to translate.
return DbExpression
        protected override DbExpression VisitDeleteExpression(DbDeleteExpression deleteExpression)
        {
            var sb = new StringBuilder();

            if (deleteExpression.Target.ExpressionType == DbExpressionType.Alias)
                sb.AppendFormat("DELETE {0} FROM {1} ", ((DbAliasExpression) deleteExpression.Target).Alias,Visit(deleteExpression.Target));
            else
            {
                if (deleteExpression.FromExpression.IsNull())
                {
                    sb.AppendFormat("DELETE FROM {0} ", Visit(deleteExpression.Target));
                }
                else
                {
                    var aliasExpression = deleteExpression.FromExpression.Find<DbAliasExpression>(ae => ae.Target.Equals(deleteExpression.Target)).FirstOrDefault();
                    if (aliasExpression.IsNull())
                        sb.AppendFormat("DELETE {0} ", Visit(deleteExpression.Target));
                    else
                        sb.AppendFormat("DELETE {0} ", aliasExpression.Alias);
                    sb.AppendLine();
                    sb.AppendLine("FROM ");
                    sb.AppendFormat(1, "{0} ", Visit(deleteExpression.FromExpression));
                }
            }

            if (!deleteExpression.WhereExpression.IsNull())
            {
                sb.AppendLine();
                sb.AppendLine("WHERE ");
                sb.AppendFormat(1, "{0} ", Visit(deleteExpression.WhereExpression));
            }

            return ExpressionFactory.Sql(sb.ToString().Trim());
        }