实体框架-自动变更检测的优势是什么

本文关键字:检测 是什么 框架 实体 | 更新日期: 2023-09-27 18:05:06

当使用EntityObject派生的类型或更改跟踪代理对象时,实体框架会在发生时自动跟踪对实体所做的更改

这给了我什么优势?如果没有这一点,当我调用SaveChanges时,我的更改仍然会被检测到,并且我的POCO会被正确地持久化。

此外,为什么许多EF的在线教程在做出更改后会明确地将状态更改为已修改,这有什么目的?

context.Entry(model).State = EntityState.Modified;

实体框架-自动变更检测的优势是什么

EF跟踪实体的更改,这样当您调用SaveChanges((时,它就会知道在数据库中更新哪些实体,即生成什么SQL并在数据库中运行。


之所以有下划线,是为了附加当前未被跟踪的模型,并将其状态设置为已修改。

context.Entry(model).State = EntityState.Modified;

如果你自己创建了实体的实例,例如-,你需要这样做

var customer = new Customer();

这不会将您的客户添加到DbContext,因此不会对其进行跟踪。所以你需要使用上下文。输入(客户(。