¿Eliminar un solo registro de Entity Framework?

Resuelto user2497476 asked hace 11 años • 15 respuestas

Tengo una tabla de SQL Server en Entity Framework nombrada employcon una sola columna de clave llamada ID.

¿Cómo elimino un solo registro de la tabla usando Entity Framework?

user2497476 avatar Jul 18 '13 19:07 user2497476
Aceptado

No es necesario consultar el objeto primero, puedes adjuntarlo al contexto por su ID. Como esto:

var employer = new Employ { Id = 1 };
ctx.Employ.Attach(employer);
ctx.Employ.Remove(employer);
ctx.SaveChanges();

Alternativamente, puede configurar el estado de la entrada adjunta como eliminado:

var employer = new Employ { Id = 1 };
ctx.Entry(employer).State = EntityState.Deleted;
ctx.SaveChanges();
mt_serg avatar Jul 18 '2013 12:07 mt_serg

Puede usarlo SingleOrDefaultpara obtener un único objeto que coincida con sus criterios y luego pasarlo al Removemétodo de su tabla EF.

var itemToRemove = Context.Employ.SingleOrDefault(x => x.id == 1); //returns a single item.

if (itemToRemove != null) {
    Context.Employ.Remove(itemToRemove);
    Context.SaveChanges();
}
Mansfield avatar Jul 18 '2013 12:07 Mansfield
  var stud = (from s1 in entities.Students
            where s1.ID== student.ID
            select s1).SingleOrDefault();

  //Delete it from memory
  entities.DeleteObject(stud);
  //Save to database
  entities.SaveChanges();
Alex G avatar Jul 18 '2013 12:07 Alex G

Estoy usando el marco de entidad con LINQ. El siguiente código fue útil para mí;

1- Para múltiples registros

 using (var dbContext = new Chat_ServerEntities())
 {
     var allRec= dbContext.myEntities;
     dbContext.myEntities.RemoveRange(allRec);
     dbContext.SaveChanges();
 }

2- Para registro único

 using (var dbContext = new Chat_ServerEntities())
 {
     var singleRec = dbContext.ChatUserConnections.FirstOrDefault( x => x.ID ==1);// object your want to delete
     dbContext.ChatUserConnections.Remove(singleRec);
     dbContext.SaveChanges();
 }
Baqer Naqvi avatar Jun 23 '2017 09:06 Baqer Naqvi