使用可能已存在的复合键创建具有Breeze的实体

时间:2015-03-18 21:23:21

标签: breeze

我正在使用manager.createEntity("Foo", { a: 1, b: 2});创建一个新实体 问题是Foo有一个复合键。 ab都是其PK值。因此,如果我以这种方式调用createEntity,并且该实体已经存在,那么我将获得MergeStrategy of Disallowed错误。

这里的最佳做法是什么?我应该拨打manager.fetchEntityByKey("Foo", [a,b], true)来查看它是否存在吗?或者我应该在try / catch中包装createEntity调用?或其他什么?

1 个答案:

答案 0 :(得分:1)

我肯定会打电话给 fetchEntityByKey 。使用带有try / catch的 createEntity 的问题是这个调用可能会成功,因为“' new'实体尚未进入缓存,因为它尚未被提取,但您稍后在尝试保存时仍会收到错误,因为服务器将检测到实体因为已存在而无法添加。最好总是尽早发现错误(failfast)。