2014-06-23 23 views
0

我在Xamarin中使用移動服務數據離線模式,並且有幾個問題。Azure移動服務離線數據 - 映射和初始化問題

首先,我不知道我的對象映射應該如何爲我的數據類設置。這裏被命名爲「部分」我的數據類之一的一個簡單的例子:

public class Section : BaseModel 
    { 
     private SurveyType _SurveyType; 
     public SurveyType SurveyType { 
      get { return _SurveyType; } 
      set { 
       if (value.Equals (_SurveyType)) 
        return; 
       _SurveyType = value; 
       OnPropertyChanged(); 
      } 
     } 

     private string _Name; 
     public string Name { 
      get { return _Name; } 
      set { 
       if (value.Equals (_Name, StringComparison.Ordinal)) 
        return; 
       _Name = value; 
       OnPropertyChanged(); 
      } 
     } 

     private int _SortOrder; 
     public int SortOrder { 
      get { return _SortOrder; } 
      set { 
       if (value.Equals (_SortOrder)) 
        return; 
       _SortOrder = value; 
       OnPropertyChanged(); 
      } 
     } 
    } 

現在,如果你注意到,在BaseModel類實現。這只是定義了字符串類型的Id屬性。這裏的問題是「SurveyType」列是指另一個類。我希望會發生的情況是,SurveyType類的Id將在保存時插入Sections表中。反而會發生的情況是,我從MobileServices服務收到一個錯誤,它無法將「對象」的數據類型插入到數據庫中。

有沒有更好的方法來映射我的數據關係,或者我堅持存儲每個引用的類的Id?

我的第二個問題是,很多時候,當我把一個新的數據庫在下面的方法,我得到一個錯誤約沒有被定義的表:

store.DefineTable<Section>(); 

在這種情況下,「店」是一個MobileServiceSQLiteStore的實例。 從我所看到的情況來看,這是調用的正確方法,以便在離線/在線數據庫中定義表格,以便對其執行CRUD操作。

有沒有更好的方法來做到這一點?

謝謝!

+0

相關的實體,現在可以在同一個表中的列被保存爲JSON。您還可以選擇在商店級別拆分對象並將其保存在單獨的表格中。 –

回答