(Reformulé)
J'ai une table SQL Server dans Entity Framework nommée employ
avec une seule colonne key nommée ID
.
Comment supprimer un logging de la table à l'aide d'Entity Framework?
Il n'est pas nécessaire d'interroger l'object en premier, vous pouvez l'attacher au context par son identifiant. Comme ça:
var employer = new Employ { Id = 1 }; ctx.Employ.Attach(employer); ctx.Employ.Remove(employer); ctx.SaveChanges();
Alternativement, vous pouvez définir l'état de l'input attachée à supprimer * Merci à Simon Belanger *:
var employer = new Employ { Id = 1 }; ctx.Entry(employer).State = EntityState.Deleted; ctx.SaveChanges();
Vous pouvez utiliser SingleOrDefault
pour get un seul object correspondant à vos critères, puis passer à la méthode Remove
de votre table 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).FirstOrDefault(); //Delete it from memory entities.DeleteObject(stud); //Save to database entities.SaveChanges();
Employer employer = context.Employers.First(x => x.EmployerId == 1); context.Customers.DeleteObject(employer); context.SaveChanges();
J'utilise le framework d'entité avec LINQ. Le code suivant m'a été utile;
1- Pour plusieurs loggings
using (var dbContext = new Chat_ServerEntities()) { var allRec= dbContext.myEntities; dbContext.myEntities.RemoveRange(allRec); dbContext.SaveChanges(); }
2- Pour un logging unique
using (var dbContext = new Chat_ServerEntities()) { var singleRec = dbContext.ChatUserConnections.FirstOrDefault(); // object your want to delete dbContext.ChatUserConnections.Remove(singleRec); dbContext.SaveChanges(); }