Azure移动服务脱机数据-映射和初始化问题



我在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类已经实现了。这只是定义了字符串类型的Id属性。这里的问题是"SurveyType"列指的是另一个类。我希望发生的是,SurveyType类的Id将在保存时插入Sections表。发生的事情是,我从MobileServices服务收到一个错误,它无法将数据类型"object"插入数据库。

是否有更好的方法来映射我的数据关系,或者我只是存储每个引用类的Id ?

我的第二个问题是,很多时候,当我在一个新数据库上调用以下方法时,我得到一个关于未定义表的错误:

store.DefineTable<Section> (); 

在这个例子中,"store"是MobileServiceSQLiteStore的一个实例。从我所看到的来看,为了在离线/在线数据库中定义表,以便对它执行CRUD操作,调用这个方法是正确的。

有更好的方法吗?

谢谢!

不确定问题# 2,但对于映射复杂类型(#1)有什么关系,我相信Carlos Figueroa的这篇文章可以回答这个问题。

http://blogs.msdn.com/b/carlosfigueira/archive/2013/08/23/complex-types-and-azure-mobile-services.aspx

阿尔贝托。

最新更新