我在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操作。
有沒有更好的方法來做到這一點?
謝謝!
相關的實體,現在可以在同一個表中的列被保存爲JSON。您還可以選擇在商店級別拆分對象並將其保存在單獨的表格中。 –