ios - Azure 移动服务脱机数据同步 - pullWithQuery 错误

标签 ios azure core-data azure-mobile-services

我使用 Azure 移动服务作为后端。数据结构已实现,我使用 Fiddler 测试了 CRUD 调用。一切似乎都是对的。

然后我实现了与客户端iOS设备的离线数据同步。顺便说一句,我遵循了本教程:https://azure.microsoft.com/en-gb/documentation/articles/app-service-mobile-ios-get-started-offline-data-preview/

我的问题是当我尝试使用 pullWithQuery 函数同步数据时。我收到此错误:

2015-08-19 11:36:12.525 Hykso[1820:330268] Logged in as Facebook:10155931659265500
2015-08-19 11:36:30.285 Hykso[1820:330522] ERROR Error Domain=com.Microsoft.WindowsAzureMobileServices.ErrorDomain Code=-1302 "{"message":"An error has occurred."}" UserInfo=0x14671c30 {NSLocalizedDescription={"message":"An error has occurred."}, com.Microsoft.WindowsAzureMobileServices.ErrorResponseKey=<NSHTTPURLResponse: 0x14584de0> { URL: https://hyksomobileservice.azure-mobile.net/tables/Athlete?$top=50&__includeDeleted=true&$skip=0&__systemProperties=__createdAt%2C__updatedAt%2C__deleted%2C__version } { status code: 500, headers {
    "Cache-Control" = "no-cache";
    "Content-Length" = 36;
    "Content-Type" = "application/json; charset=utf-8";
    Date = "Wed, 19 Aug 2015 15:36:28 GMT";
    Expires = 0;
    Pragma = "no-cache";
    Server = "Microsoft-IIS/8.0";
    "X-Powered-By" = "ASP.NET";
} }, com.Microsoft.WindowsAzureMobileServices.ErrorRequestKey=<NSMutableURLRequest: 0x14657830> { URL: https://hyksomobileservice.azure-mobile.net/tables/Athlete?$top=50&__includeDeleted=true&$skip=0&__systemProperties=__createdAt%2C__updatedAt%2C__deleted%2C__version }}

我刚刚使用 Fiddler 测试了相同的 get 调用,并收到此消息:

exceptionMessage=The specified type member 'Version' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

有人可以给我一些建议来调试这个吗?谢谢!

最佳答案

(首先,请确保您使用 Mobile Services topic 而不是移动应用主题。对于本文来说,它们非常相似,所以这不是您的问题。)

该错误看起来很奇怪,它表明您的服务器设置有问题。您的客户端正在发送查询,询问系统属性 __createdAt, __updatedAt, __deleted, and __version ,但不知何故,“版本”部分被转换为无效的 LINQ 查询。如果您从核心数据模型中删除 ms_version 列,则不会请求版本,但您无法执行任何冲突处理。

根据 EF 错误消息,您必须使用 .NET 后端。当您使用服务器项目中的默认 TodoItem 类型进行测试时会发生什么?您的数据类需要扩展 EntityData 以确保所有内容都正确映射。 (您可以使用 ITableData,但那更高级。)

在调试方面,您可以在 IIS Express 上本地运行服务器项目,并在通过 Fiddler 到达端点后设置断点。您还可以使用远程调试来访问实际的远程服务。

有关这方面的教程,请参阅:

关于ios - Azure 移动服务脱机数据同步 - pullWithQuery 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100414/

相关文章:

objective-c - Facebook库登录对话框如何修改其外观?

asp.net - 在发布时更改 .config 文件中的附加程序参数值( azure 管道)

azure - 从本地 MySQL 提取数据并将其转换到 Azure Synapse 数据仓库

azure - 我可以在没有公共(public) IP 的情况下为 Azure 虚拟机提供 Internet 访问权限吗?

macos - 如何将数据从内存数据库迁移到Core Data中的NSSQLiteStoreType DB?

ios - IBAction 链接到多个 UISliders

ios - 通过 UISegmentControl 将数据传递给 childViewControllers

ios - Objective-c Shinobi 网格更新到 2.8

objective-c - 带有数组的核心数据获取请求

ios - 如何从 Core Data 中的持久存储中删除所有对象?