No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
13 Hrs
7 Min
50 Seg

Eliminando datos con Entity framework

24/25
Recursos

Aportes 7

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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