在我的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
我确定我在这里做错了,只是似乎无法确切地指出。
-尤金
最佳答案
您应该使用PullAsync而不是ReadAsync。另外,您需要等待对所有异步方法调用的调用,例如InsertAsync,PushAsync和PullAsync。
有关详细示例,请参见本教程:http://azure.microsoft.com/en-us/documentation/articles/mobile-services-xamarin-ios-get-started-offline-data/