Breeze 和数据访问 SOA
-
21-12-2019 - |
题
在评估 Angular + Breeze 时,它是否支持跟踪所使用的 DTO 从服务到后端实体框架的更改?
解决方案
是的,也不是。Breeze 会跟踪客户端上的变化,以及当您调用时 saveChanges()
, ,它将更改的实体(带有有关更改的属性的信息)发送到服务器。服务器上发生的事情取决于您,因此您可以使用接收到的数据来修改现有 EF 上下文中实体的状态,并在 EF 中累积更改跟踪信息,直到您决定将其保存到数据库。
提供的EF+WebApi 服务器端组件 但是,不要这样做。它们旨在简化以下用例:
- 客户端对实体执行添加/更新/删除操作并调用 保存更改().
- 服务器创建一个 新的 EF DbContext 并将更改应用于它。
- 服务器应用验证规则(在 保存实体之前 方法),如果失败则拒绝保存。
- 服务器 DbContext 将更改保存到数据库。
在这种情况下,没有长期存在的 EF DbContext 跟踪更改;更改跟踪在客户端完成,EF 用于在服务器上处理这些更改并将它们保存在 DB 中。
这可能涵盖了大多数应用程序所需的 90%,但是有一些钩子可以拦截保存并在保存之前进行服务器端更改,并且您可以覆盖任何不符合您需求的部分。
不隶属于 StackOverflow