这看起来像是 Microsoft azure 移动客户端对 android 离线同步服务的限制。
在我的 xamarin 表单应用程序中,我有 40 个 azure 表可以与远程同步。每当特定请求(_abcTable.PullAsync)具有更多的数字记录(如 5K)时,PullAsync 就会返回异常,指出:执行 SQLite 命令时出错:'太多 SQL 变量'。
拉取异步 URL 如下所示: https://abc-xyz.hds.host.com/AppHostMobile/tables/XXXXXXResponse ?$filter=(updatedAt ge datetimeoffset'2017-06-20T13:26:17.8200000%2B00:00' )&$orderby=updatedAt&$skip=0&$top=5000&ProjectId=2&__includeDeleted=true。
但是在邮递员中,我可以看到相同的 Url 返回 5K 记录,并且在 iPhone 设备中也可以正常工作,但仅在 android 中失败。
从上面的 PullAsync 请求中,如果我将“top”参数值从 5000 更改为 500,它在 android 中可以正常工作,但需要更多时间。在不限制性能的情况下,我还有其他选择吗?
包版本:
Microsoft.Azure.Mobile.Client version="3.1.0"
Microsoft.Azure.Mobile.Client.SQLiteStore" version="3.1.0"
Microsoft.Bcl version="1.1.10"
Microsoft.Bcl.Build 版本="1.0.21" <br/> SQLite.Net.Core-PCL 版本="3.1.1"
SQLite.Net-PCL 版本="3.1.1" <br/> SQLitePCLRaw.bundle_green 版本="1.1.2"
SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.2"
SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.2"
如果我需要提供更多信息,请告诉我。谢谢