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

时间:2014-06-23 17:08:42

标签: sqlite azure xamarin.ios xamarin azure-mobile-services

我在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操作的正确方法。

有更好的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

不确定问题#2但是关于映射复杂类型的问题(#1)我相信Carlos Figueroa的这篇​​文章可以回答它。

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

阿尔贝托