该项目使用实体框架版本 6.1.3。
在不同的来源中,我看到了多种从数据库中删除条目的方法:
- 将对象标记为已删除:
_context.Entry(obj).State = EntityState.Deleted; - 使用方法
Remove():_context.Set<T>().Remove(obj);
在这两种情况下,删除都会在下次调用该方法时发生。SaveChanges()
我试图找到这些方法之间的区别:我找不到任何可以理解的东西。
告诉我在什么情况下习惯使用一种或另一种方法,也许有一些细微差别/建议?
Remove 方法在删除实体之前检查实体的状态,并防止删除未附加到上下文的实体:
另一方面,当您需要按键删除记录时,显式状态分配可以提供帮助: