【问题标题】:Client Side Transactions in Azure App Service Offline SyncAzure 应用服务离线同步中的客户端事务
【发布时间】:2015-11-25 16:26:42
【问题描述】:

在使用 azure app service 离线同步时,是否可以在客户端利用事务?

在我看来,您几乎一次只能将一条记录插入到 SQLite 存储中,但理想情况下,我希望能够在一个事务中提交多条记录。

我现在在 Android 上使用 Xamarin,但也将支持 iOS。

谢谢

马特

【问题讨论】:

    标签: xamarin azure-mobile-services azure-app-service-envrmnt


    【解决方案1】:

    不幸的是,在 Windows、Xamarin 和 Android 上,您一次只能在本地 MobileServicesSQLiteStore 上提交一条记录。这是因为需要使用 SyncTable.UpdateAsync 等方法一次进行一项更改,这是您将更改标记为正在跟踪以发送到服务器的方式。

    在原生 iOS 上,移动服务离线同步功能使用 Core Data,它支持一种交易形式 (https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdMemory.html)。如果您使用这些 API,您仍然需要调用移动服务 SDK 方法来跟踪内部跟踪表中的每个单独的更改。

    为什么需要在客户端进行交易?实现目标可能有不同的方法。

    【讨论】:

    • 这不是我真正需要的东西,只是拥有它会很高兴。我基本上有一个小对象图,我需要同时提交所有对象,它们代表几个不同的表。理想情况下,它们是外键关系,我可以在事务中将它们全部提交,以确保我的数据库中不会出现无效的图表。
    • 可以在 localstore 上使用 upsert() API,然后调用 MSClient 方法(比如只填充项目的 ID)这样主要数据进入并跟踪需要什么去服务器设置。但是,向服务器的推送仍然会一次执行 1 条记录,因此可能会中断。
    • @MattWhetton 正如 phillipv 所说,您可以批量插入,但这对您的方案没有帮助,因为 Push 操作一次发送一个更改。
    • 谢谢,很高兴知道这一点。没有意识到记录是一次发送的,但我想这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    相关资源
    最近更新 更多