【问题标题】:Entity Framework SaveChanges - Customize Behavior?实体框架 SaveChanges - 自定义行为?
【发布时间】:2011-07-23 02:38:00
【问题描述】:

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

有没有办法自定义 SaveChanges 过程,使其不再是一个黑匣子?理想情况下,能够自定义流程真的会为我打开很多东西,尤其是对于我的应用程序架构。

谢谢。

【问题讨论】:

  • 你能不能回头看看你的问题,改写一下?\
  • 有没有办法自定义 SaveChanges 过程,使其不再是一个黑匣子? - 这说明了一切......我不喜欢 EF 这样做的方式。它会提交 100 次更改,而您并不真正知道发生了什么......

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


【解决方案1】:

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

【讨论】:

  • 这是正确的。我没有提到这一点,这就是我要给出的方法。我已经删除了我的答案。投赞成票!
猜你喜欢
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 1970-01-01
  • 2015-09-30
  • 2023-04-07
相关资源
最近更新 更多