/// <summary> /// Translates the <paramref name="deleteExpression"/> into a string representation. /// </summary> /// <param name="deleteExpression">The <see cref="DbDeleteExpression"/> to translate.</param> /// <returns><see cref="string"/></returns> protected override DbExpression VisitDeleteExpression(DbDeleteExpression deleteExpression) { var sb = new StringBuilder(); 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())); }
/// <summary> /// Translates the <paramref name="deleteExpression"/> into a string representation. /// </summary> /// <param name="deleteExpression">The <see cref="DbDeleteExpression"/> to translate.</param> /// <returns><see cref="DbExpression"/></returns> protected virtual DbExpression VisitDeleteExpression(DbDeleteExpression deleteExpression) { var targetExpression = Visit(deleteExpression.Target); var fromExpression = Visit(deleteExpression.FromExpression); var whereExpression = Visit(deleteExpression.WhereExpression); if (!ReferenceEquals(targetExpression, deleteExpression.Target) || !ReferenceEquals(fromExpression, deleteExpression.FromExpression) || !ReferenceEquals(whereExpression, deleteExpression.WhereExpression)) { return(ExpressionFactory.Delete(targetExpression, fromExpression, whereExpression)); } return(deleteExpression); }
/// <summary> /// Translates the <paramref name="deleteExpression"/> into a string representation. /// </summary> /// <param name="deleteExpression">The <see cref="DbDeleteExpression"/> to translate.</param> /// <returns><see cref="string"/></returns> protected override DbExpression VisitDeleteExpression(DbDeleteExpression deleteExpression) { var sb = new StringBuilder(); 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()); }
/// <summary> /// Creates a new <see cref="DbDeleteExpression"/> that represents delete statement. /// </summary> /// <param name="target">The <see cref="DbExpression"/> that represents the delete target.</param> /// <param name="fromExpression">The <see cref="DbExpression"/> that represents the 'FROM' clause of the query.</param> /// <param name="whereExpression">the <see cref="DbExpression"/> that represents the 'WHERE' clause of the query.</param> /// <returns>A <see cref="DbDeleteExpression"/> instance.</returns> public DbDeleteExpression Delete(DbExpression target, DbExpression fromExpression, DbExpression whereExpression) { var dbDeleteExpression = new DbDeleteExpression { Target = target, FromExpression = fromExpression, WhereExpression = whereExpression }; return dbDeleteExpression; }
/// <summary> /// Translates the <paramref name="deleteExpression"/> into a string representation. /// </summary> /// <param name="deleteExpression">The <see cref="DbDeleteExpression"/> to translate.</param> /// <returns><see cref="DbExpression"/></returns> protected virtual DbExpression VisitDeleteExpression(DbDeleteExpression deleteExpression) { var targetExpression = Visit(deleteExpression.Target); var fromExpression = Visit(deleteExpression.FromExpression); var whereExpression = Visit(deleteExpression.WhereExpression); if (!ReferenceEquals(targetExpression,deleteExpression.Target) || !ReferenceEquals(fromExpression,deleteExpression.FromExpression) || !ReferenceEquals(whereExpression,deleteExpression.WhereExpression)) { return ExpressionFactory.Delete(targetExpression, fromExpression, whereExpression); } return deleteExpression; }