我正在使用manager.createEntity("Foo", { a: 1, b: 2});
创建一个新实体
问题是Foo
有一个复合键。 a
和b
都是其PK值。因此,如果我以这种方式调用createEntity
,并且该实体已经存在,那么我将获得MergeStrategy of Disallowed错误。
这里的最佳做法是什么?我应该拨打manager.fetchEntityByKey("Foo", [a,b], true)
来查看它是否存在吗?或者我应该在try / catch中包装createEntity
调用?或其他什么?
答案 0 :(得分:1)
我肯定会打电话给 fetchEntityByKey 。使用带有try / catch的 createEntity 的问题是这个调用可能会成功,因为“' new'实体尚未进入缓存,因为它尚未被提取,但您稍后在尝试保存时仍会收到错误,因为服务器将检测到实体因为已存在而无法添加。最好总是尽早发现错误(failfast)。