我在Xamarin中使用移动服务数据离线模式并遇到了一些问题。
首先,我不确定应该如何为我的数据类设置对象映射。以下是我的一个名为“Section”的数据类的简单示例:
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类已实现。这只是定义string类型的Id属性。这里的问题是“SurveyType”列引用另一个类。我希望会发生的是SurveyType类的Id将在保存时插入Sections表。相反,我从MobileServices服务收到错误,它无法将数据类型的“对象”插入数据库。
有没有更好的方法来映射我的数据关系,还是我只是存储了每个引用类的Id?
我的第二个问题是很多次,当我在新数据库上调用以下方法时,我收到有关未定义表的错误:
store.DefineTable<Section> ();
在这种情况下,“store”是MobileServiceSQLiteStore的一个实例。 从我所看到的,这是调用以在离线/在线数据库中定义表以便对其执行CRUD操作的正确方法。
有更好的方法吗?
谢谢!
答案 0 :(得分:1)
不确定问题#2但是关于映射复杂类型的问题(#1)我相信Carlos Figueroa的这篇文章可以回答它。
阿尔贝托