You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

2 D铆as
3 Hrs
39 Min
39 Seg

Eliminando datos con Entity framework

24/25
Resources

Contributions 7

Questions 5

Sort by:

Want to see more contributions, questions and answers from the community?

Pueden agregar peque帽os comentarios de confirmaci贸n como los siguientes as铆 queda mas bonito:

return Results.Ok($"Se actualizo la tarea de nombre: {tareaActual.Titulo}");
//----------------------------------------------------
return Results.Ok($"Tarea con titulo: {tareaActualDelete.Titulo}, se elimino exitosamente");

Eliminando datos con Entity framework


app.MapDelete("/api/tareas/{id}", async ([FromServices] HomeworkContext dbContext, [FromRoute] Guid id) =>
{
	var tarea = await dbContext.homeworks.FindAsync(id);
	if (tarea == null)
	{
		return Results.NotFound();
	}
	dbContext.homeworks.Remove(tarea);
	await dbContext.SaveChangesAsync();
	return Results.Ok(tarea);
});

Este c贸digo es parte de una aplicaci贸n de servidor web que utiliza el framework ASP.NET Core. En este caso, se define una ruta de borrado para una tarea espec铆fica en un API RESTful.

  • La ruta de borrado se define mediante el m茅todo MapDelete y se accede a trav茅s del endpoint /api/tareas/{id}, donde {id} es una variable que se reemplaza con el identificador 煤nico de la tarea a borrar.
  • El par谩metro [FromServices] HomeworkContext dbContext indica que se est谩 inyectando una instancia del contexto de base de datos en la funci贸n an贸nima. Esto se logra mediante el contenedor de dependencias de ASP.NET Core.
  • El par谩metro [FromRoute] Guid id indica que se est谩 obteniendo el identificador de la tarea a borrar de la ruta de la solicitud.
  • Dentro de la funci贸n an贸nima, se usa await dbContext.homeworks.FindAsync(id) para buscar la tarea a borrar en la base de datos. Si la tarea no se encuentra, se devuelve un resultado Results.NotFound(). De lo contrario, se elimina la tarea llamando al m茅todo dbContext.homeworks.Remove(tarea). Finalmente, se guardan los cambios en la base de datos llamando a await dbContext.SaveChangesAsync() y se devuelve un resultado Results.Ok(tarea) que contiene la tarea borrada.

Esta es mi forma de actualizar las CATEGOR脥AS.

<//Para ACTUALIZAR CATEGORIAS datos de una Base de Datos.
app.MapPut("/api/categorias/{id}", async ([FromServices] TareasContext dbContext, [FromBody] Categoria categoria, [FromRoute] Guid id) =>
{
    //El m茅todo FIND, busca por la que est茅 marcada como KEY en el modelo.
    var categoriaActual = dbContext.Categorias.Find(id);

    if (categoriaActual != null)
    {
        //categoriaActual.CategoriaId = categoria.CategoriaId;
        categoriaActual.Nombre = categoria.Nombre;
        categoriaActual.Peso = categoria.Peso;
        categoriaActual.Descripcion = categoria.Descripcion;
        await dbContext.SaveChangesAsync();
        return Results.Ok("Se realiz贸 la ACTUALIZACI脫N de la CATEGOR脥A de manera correcta");

    }
    return Results.NotFound();
});> 
cabe resaltar que en una base de datos algunos datos se les hace borrado log铆co y no f铆sico
驴Qu茅 es buena pr谩ctica? 驴Misma ruta con diferente instrucci贸n? `GET /api/{id}` `DELETE /api/{id}` 驴O rutas separadas? `GET /api/{id}` `DELETE /api/delete/{id}`
![](https://static.platzi.com/media/user_upload/Curso%20de%20Entity%20Framework-fc354acf-37f6-4a07-8046-752c06056a7a.jpg)

Error de System.NotSupportedException: Serialization and deserialization of 'System.Func`2[[System.Object, System.Private
Si te ocurre esto es algo ridiculamente sutil lo que ocurre.
En el codigo no estas poniendo los parentesis en alguno de los results sea

return Results.Ok;
//En su lugar solo agrega los parentesis y todo estara bien