2016-05-01 6 views
1

Ich erstelle Windows 10 Store-Anwendung und ich habe ein Problem beim Aufruf PullAsync Methode. Ich habe die Azure Mobile App lange benutzt und immer private IMobileServiceTable<MyTable> table benutzt. Jetzt muss ich Unterstützung von etwas in Microsoft hinzufügen, das Offline Sync genannt wird. Nach der Unterweisung war ich nicht erfolgreich.Azure Mobile App Offline Sync nie Daten

Hier ist mein Code.

using Microsoft.WindowsAzure.MobileServices; 
using Microsoft.WindowsAzure.MobileServices.Sync; 
using Microsoft.WindowsAzure.MobileServices.SQLiteStore; 

private IMobileServiceSyncTable<MyTable> OffTable = App.MobileService.GetSyncTable<MyTable>(); 
private IMobileServiceTable<MyTable> OnTable = App.MobileService.GetTable<MyTable>(); 

protected ovveride async OnNavigatedTo() 
{ 
    if(!App.MobileService.SyncContext.IsInitialized) 
    { 
     var store = new MobileServiceSQLiteStore("localstore.db"); 
     store.DefineTable<MyTable>(); 

     await App.MobileService.SyncContext.InitializeAsync(store); 
    } 

    await OffTable.PullAsync("uniqueID", OffTable.CreateQuery()); 
    var data = await OffTable.ToCollectionAsync(); //return -> nothing 

    var data2 = await OnTable.ToCollectionAsync(); //return -> 50 rows 
} 

Und MyTable.cs

using Microsoft.WindowsAzure.MobileServices; 
using Newtosoft.Json; 

[DataTable("MyTable")] 
public sealed class MyTable 
{ 
    [JsonProperty] 
    public int ID { get; set;} 


    [JsonProperty] 
    public string Field1 { get; set; } 

    //... 

    [JsonProperty(PropertyName = "version")] 
    [Version] 
    public string Version { get; set; } 


    [JsonProperty(PropertyName = "deleted")] 
    [Deleted] 
    public bool Deleted { get; set; } 


    [JsonProperty(PropertyName = "updatedAt")] 
    [UpdatedAt] 
    public DateTime UpdatedAt { get; set; } 


    [JsonProperty(PropertyName = "createdAt")] 
    [CreatedAt] 
    public DateTime CreatedAt { get; set; } 
} 

Hier Werte von project.json:

"Microsoft.Azure.Mobile.Client": "2.0.1", 
"Microsoft.Azure.Mobile.Client.SQLiteStore": "2.0.1" 

Was ich falsch mache?

Antwort

0

Problem war auf der Serverseite. Also, im Grunde müssen Sie Tabelle über Azure Portal erstellen. Sie können auch über SQL Management Studio erstellen, aber wenn Sie über Portal erstellen, werden Sie createdAt, updatedAt, version und deleted im richtigen Format haben. Also, wenn Sie Tabelle über SQL MGMNT Studio erstellt haben, gehen Sie zu Portal und klicken Sie Create Table, geben Sie den Namen Ihrer Tabelle ein. Es ist OK, Ihre Daten werden NICHT überschrieben und dann sollte alles gut funktionieren.