实体框架SaveChanges - 自定义行为?

时间:2011-07-23 02:38:00

标签: .net entity-framework entity-framework-4 black-box

因此,您实例化EF上下文,将对象推入或拉出对象,它会跟踪对象更改的完整状态(如果更改跟踪)。到目前为止,开发人员一直负责进行这些修改。但是一旦调用了SaveChanges,所有这些记录都将被批量提交,开发人员将从最终结果中被剥夺公民权,保存错误消息或完成后成功调用。

有没有办法自定义SaveChanges进程,以便它不是一个黑盒子?理想情况下,能够自定义流程可以为我开放,特别是对于我的应用程序架构。

感谢。

1 个答案:

答案 0 :(得分:3)

处理SavingChanges事件是一种方法,但对于更复杂的处理,您可以在派生上下文中覆盖SaveChanges操作本身。不同之处在于,SavingChanges可以在SaveChanges完成其工作之前放置自定义逻辑,但是当覆盖SaveChanges时,您可以在调用base.SaveChanges之前和之后放置自定义逻辑。保存期间没有更好的自定义逻辑支持。只有将存储过程映射到实体的数据修改操作时,才能使用自定义SQL进行保存。