如何在不首先执行SELECT语句加载实体的情况下通过主键删除记录?实体框架:如何通过主键删除记录?
13
A
回答
3
您使用的是哪个版本的实体框架?
如果您使用Entity Framework 4.1或更高版本,并使用DbContext类,则可以使用ExecuteSqlCommand()方法向数据库发送DELETE语句。请参阅http://blogs.msdn.com/b/adonet/archive/2011/02/04/using-dbcontext-in-ef-feature-ctp5-part-10-raw-sql-queries.aspx(查看将原始命令发送到数据库部分)。这将是这个样子:
DbContext ctx = ... get your DbContext somehow...
ctx.Database.ExecuteSqlCommand("DELETE FROM Foo WHERE FooID = 17");
如果您使用实体框架4.0和ObjectContext的(代替的DbContext)有一个类似的ExecuteStoreCommand方法(http://msdn.microsoft.com/en-us/library/ system.data.objects.objectcontext.executestorecommand.aspx)。
19
您可以使用虚拟对象:
var entity = new YourEntity { Key = yourKey };
context.Entities.Attach(entity);
context.Entities.DeleteObject(entity);
context.SaveChanges();
1
相关问题
- 1. 删除记录实体框架
- 2. 通过实体框架记录更改
- 3. 如何使用ExecuteSqlCommand删除实体框架中的记录?
- 4. 实体框架复合键删除一个主键
- 5. 实体框架 - 如何通过实体
- 6. 实体框架中的外键记录
- 7. 播放框架2.2.1通过ajax删除记录,方法:删除
- 8. 在实体框架中删除记录后如何移动记录?
- 9. 如何通过ID与实体框架删除对象
- 10. 实体框架和主键
- 11. 实体框架主键名
- 12. 使用实体框架创建新记录时违反主键
- 13. 实体框架4获取插入记录的主键ID
- 14. 删除实体框架
- 15. 登录通过实体框架
- 16. 如何在插入实体框架时排除主键
- 17. 实体框架不删除记录,但填充列
- 18. 使用.Remove insdie实体删除父记录框架
- 19. 在实体框架中使用可选记录级联删除
- 20. 使用ASP.NET中继器和实体框架删除记录
- 21. 实体框架 - 按ID删除相关记录
- 22. 实体框架筛选器逻辑删除记录
- 23. 识别和删除实体框架子记录
- 24. 使用jQuery从实体框架数据库删除记录
- 25. 一次删除多个记录实体框架5
- 26. 在实体框架中删除一条记录
- 27. 删除旧记录的实体框架的db.BulkInsert()
- 28. 删除Asp.Net web api 2和实体框架中的子记录
- 29. 删除最后N个记录,实体框架
- 30. 实体框架:删除子实体
从EF 5.0开始,您需要使用context.Entities.Remove(entity);而不是context.Entities.DeleteObject(entity); – Gabriel