1

我正在使用 SUP 2.1.3

我花了过去几个小时试图弄清楚为什么我删除的任何项目都与 SUP 缓存同步。

似乎删除您创建的 MBO 实例的唯一方法是调用 CancelPending()。

我已经阅读了文档,它说要调用 Delete(),但是任何实现都不会生成删除。

Delete 函数的生成方式如下:

    public void Delete()

    {

        throw new Sybase.Persistence.NoSuchOperationException();

    }

因此,当我在要删除的 MBO 实例上调用 CancelPending() 时,它会在本地将其删除,但是当设备同步时,它会将所有挂起的对象(包括已删除的对象)发送到 Sybase 服务器。

似乎当它执行同步时,它正在回滚删除将它们发送到服务器,然后在设备上提交更改。

如果这里有人对 SUP 有任何经验,我将不胜感激

更新:好的,所以我发现它只是执行逻辑删除而不是实际删除,所以我的问题仍然是如何删除对象而不是与服务器同步?

4

1 回答 1

0

好的,所以我发现了问题。文档建议SubmitPending()在每个对象创建后调用,因为它对 Performance 而不是调用SubmitionPendingOperations().

这会锁定对象以进行同步,并且不允许对对象进行 Delete 或 Update 调用。

SubmitPendingOperations()在执行同步之前删除它并执行提交创建的项目解决了我的问题。

因此,向任何开始使用 Sybase Unwired Platform 的人上一课,只有SubmitPending()在您知道不会对对象进行更改时才调用

于 2013-05-01T07:37:44.550 回答