¿Eliminar un solo registro de Entity Framework?
Tengo una tabla de SQL Server en Entity Framework nombrada employ
con una sola columna de clave llamada ID
.
¿Cómo elimino un solo registro de la tabla usando Entity Framework?
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();
Puede usarlo SingleOrDefault
para obtener un único objeto que coincida con sus criterios y luego pasarlo al Remove
mé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();
}
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();
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();
}