【问题标题】:Breeze, required actions and SaveChanges?微风,需要采取的行动和 SaveChanges?
【发布时间】:2013-04-05 19:02:40
【问题描述】:
我对 Breeze-package 进行了简短的查看.. 看起来很有希望.. 但我没有得到的是.. 需要执行哪些操作才能让轻率js 框架(客户端)正常工作? ..
因为在示例中,有两个操作我不确定他们在做什么..或者他们是否有一些如何配置客户端框架..
这两个动作是:
元数据和 SaveChanges.. 我确实理解它们的作用......但正如我所提到的......首先......它们是 Breeze-clientside-framework 运行所必需的吗?......我可以更改 SaveChanges 的名称吗?
和 2:ndly .. SaveChanges 是如何工作的?.. 它只是“获取”你扔给它的任何对象/实体..然后对 server-entity-models 进行检查,如果有任何匹配,那么它保存数据?.. 它是否也在更新和/或创建实体?..
提前致谢!
【问题讨论】:
标签:
c#
asp.net
asp.net-web-api
breeze
【解决方案1】:
Breeze 使用服务器端 Metadata 操作返回有关它将管理的对象形状的元数据。同样的元数据也可以直接在客户端定义,并且可以告诉 Breeze 不要尝试从服务器获取元数据(请参阅 DataService.hasServerMetadata)属性。默认情况下,如果未设置此项,即如果微风还没有关于服务的元数据,那么它会在针对该服务的第一次“查询”之前自动尝试从服务器获取元数据。微风 zip 中的 NoDb 示例显示了跳过此步骤并直接在微风客户端上提供元数据的一个很好的示例。
服务器端 SaveChanges 操作仅在您想通过客户端“SaveChanges”调用将数据从微风客户端持久化回服务器时才需要。上面提到的 NoDb 示例也显示了一个例子。
开箱即用,微风为实体框架支持的模型提供了元数据和 SaveChanges 的服务器端实现,但您也可以提供自己的版本。我们还在努力为其他流行的后端(Raven、Mongo 等)生成其他开箱即用的实现。