微风和数据访问SOA

时间:2014-06-04 12:41:08

标签: angularjs entity-framework breeze

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

1 个答案:

答案 0 :(得分:1)

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

但是,提供的EF + WebApi server-side components不会这样做。它们旨在简化以下用例:

  1. 客户端对实体执行添加/更新/删除操作并调用saveChanges()
  2. 服务器创建new EF DbContext并对其应用更改。
  3. 服务器应用验证规则(在BeforeSaveEntities方法中),如果失败则拒绝保存。
  4. 服务器DbContext将更改保存到数据库。
  5. 在这种情况下,没有长期存在的EF DbContext跟踪更改;更改跟踪在客户端上完成,EF用于处理服务器上的这些更改并将其保存在数据库中。

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