如何使用Azure移动服务正确同步Xamarin iOS Sqlite

时间:2014-11-14 22:08:08

标签: sqlite xamarin azure-mobile-services

在我的Xamarin iOS PCL应用程序中,我尝试将记录插入到我的本地Sqlite表中,让它通过Azure移动服务同步,然后再读回来。 这是代码:

private IMobileServiceSyncTable<Job> jobTable;

public async Task InitializeAsync()
        {
            var store = new MobileServiceSQLiteStore("localdata.db");
            store.DefineTable<Job> ();

            await this.MobileService.SyncContext.InitializeAsync(store);

            jobTable = this.MobileService.GetSyncTable<Job>();

 jobTable = this.MobileService.GetSyncTable<Job>();

            JObject newJob = new JObject ();

            newJob.Add ("Id","job_123");

            jobTable.InsertAsync (newJob);


           this.MobileService.SyncContext.PushAsync();

            var readResult = jobTable.ReadAsync ().Result.AsQueryable();

            var resultList = from data in readResult
                    select data;

            var resultCount = resultList.Count ();
        } 

到目前为止 - 没有任何内容与我的Sql Server数据库(在移动服务的接收端)同步,并且resultCount保持为0

我确定我在这里做错了什么,但似乎无法确定具体内容。

-Eugene

1 个答案:

答案 0 :(得分:1)

您应该使用PullAsync而不是ReadAsync。此外,您需要等待对所有异步方法调用的调用,例如InsertAsync,PushAsync和PullAsync。

有关详细示例,请参阅本教程:http://azure.microsoft.com/en-us/documentation/articles/mobile-services-xamarin-ios-get-started-offline-data/