SqlDeleteBuilder
SqlDeleteBuilder<T> construye sentencias DELETE parametrizadas.
var result = new SqlDeleteBuilder<User>(new SqlServerDialect())
.From("Users")
.Where(w => w.EqualTo(x => x.Id, 42))
.Build();
// → DELETE FROM [Users] WHERE [Id] = @pw0
Seguridad: Por defecto,
Build()lanza una excepción si no se establece ninguna cláusula WHERE. Llama aAllowDeleteAll()para permitir explícitamente la eliminación de todas las filas.
From (Delete)
Firma
SqlDeleteBuilder<T> From(string tableName, string? schema = null)
Descripción Establece el nombre de la tabla destino y el esquema opcional.
Where (Delete)
Cuatro sobrecargas — misma semántica que SqlUpdateBuilder:
SqlDeleteBuilder<T> Where(SqlWhereBuilder<T> whereBuilder)
SqlDeleteBuilder<T> Where(Action<SqlWhereBuilder<T>> configure)
SqlDeleteBuilder<T> Where(Expression<Func<T, bool>> predicate)
SqlDeleteBuilder<T> Where(ValiFlow<T> filter)
OutputDeleted
Firma
SqlDeleteBuilder<T> OutputDeleted()
Descripción
Agrega OUTPUT DELETED.* después de DELETE FROM. Solo para SQL Server — devuelve las filas eliminadas.
Ejemplo
builder.From("Users").Where(x => x.Id == 42).OutputDeleted().Build();
// → DELETE FROM [Users] OUTPUT DELETED.* WHERE [Id] = @p0
Returning (Delete)
Firma
SqlDeleteBuilder<T> Returning(params Expression<Func<T, object>>[] columns)
Descripción
Agrega RETURNING * o columnas especificadas. Solo para PostgreSQL / SQLite.
Ejemplo
builder.From("Users").Where(x => x.Id == 42).Returning(x => x.Id, x => x.Name).Build();
// → DELETE FROM "Users" WHERE "Id" = @p0 RETURNING "Id", "Name"
AllowDeleteAll
Firma
SqlDeleteBuilder<T> AllowDeleteAll()
Descripción Permite explícitamente generar un DELETE sin cláusula WHERE (afecta todas las filas).
Tag (Delete)
Firma
SqlDeleteBuilder<T> Tag(string description)
Descripción Etiqueta la consulta con un comentario SQL.
Build (Delete)
Firma
SqlQueryResult Build()
Descripción
Ensambla y devuelve el SqlQueryResult final.
Ejemplo avanzado
var delete = new SqlDeleteBuilder<User>()
.From("Users")
.Where(u => u.IsArchived == true);