Delete a single record from Entity Framework?
It's not necessary to query the object first, you can attach it to the context by its id.Like this:
var employer = new Employ { Id = 1 };ctx.Employ.Attach(employer);ctx.Employ.Remove(employer);ctx.SaveChanges();
Alternatively, you can set the attached entry's state to deleted :
var employer = new Employ { Id = 1 };ctx.Entry(employer).State = EntityState.Deleted;ctx.SaveChanges();
You can use SingleOrDefault
to get a single object matching your criteria, and then pass that to the Remove
method of your EF table.
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();