我正在使用SUP 2.1.3
我花了最后几个小时试图找出为什么我删除的任何项目正在与SUP缓存同步。
删除您创建的MBO实例的唯一方法是调用CancelPending()。
我已经阅读了文档,并且它说要调用Delete(),但是在任何实现中都不会生成删除。
删除功能的生成如下:
public void Delete()
{
throw new Sybase.Persistence.NoSuchOperationException();
}
因此,当我在要删除的MBO实例上调用CancelPending()时,它会在本地删除它,但是当设备同步时,它会将所有挂起的对象(包括已删除的对象)发送到Sybase服务器。
似乎在执行同步时它会回滚删除,然后将它们发送到服务器,然后在设备上提交更改。
如果这里的任何人有SUP的经验,我将非常感谢帮助
更新: 好的,所以我发现它只执行逻辑删除而不是实际删除,所以我的问题仍然是如何删除对象但不与服务器同步?
答案 0 :(得分:0)
好的,我发现了问题。文档建议在每次创建对象后调用SubmitPending()
,因为它更适合Performance,而不是调用SubmitionPendingOperations()
。
这是锁定对象的同步,并且不允许对对象进行删除或更新调用。
在执行同步之前删除它并执行SubmitPendingOperations()
提交创建的项目解决了我的问题。
从使用Sybase Unwired Platform开始的任何其他人那里吸取教训,只有当您知道不会对对象进行任何更改时才调用SubmitPending()