在评估 Angular + Breeze 时,它​​是否支持跟踪所使用的 DTO 从服务到后端实体框架的更改?

有帮助吗?

解决方案

是的,也不是。Breeze 会跟踪客户端上的变化,以及当您调用时 saveChanges(), ,它将更改的实体(带有有关更改的属性的信息)发送到服务器。服务器上发生的事情取决于您,因此您可以使用接收到的数据来修改现有 EF 上下文中实体的状态,并在 EF 中累积更改跟踪信息,直到您决定将其保存到数据库。

提供的EF+WebApi 服务器端组件 但是,不要这样做。它们旨在简化以下用例:

  1. 客户端对实体执行添加/更新/删除操作并调用 保存更改().
  2. 服务器创建一个 新的 EF DbContext 并将更改应用于它。
  3. 服务器应用验证规则(在 保存实体之前 方法),如果失败则拒绝保存。
  4. 服务器 DbContext 将更改保存到数据库。

在这种情况下,没有长期存在的 EF DbContext 跟踪更改;更改跟踪在客户端完成,EF 用于在服务器上处理这些更改并将它们保存在 DB 中。

这可能涵盖了大多数应用程序所需的 90%,但是有一些钩子可以拦截保存并在保存之前进行服务器端更改,并且您可以覆盖任何不符合您需求的部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top