移动服务缓存

时间:2014-12-11 04:01:38

标签: azure azure-mobile-services

我正在调用自定义API azure移动服务。动态模式给出的响应。 我改变了架构,但似乎azure缓存了旧架构。如果我将实体类型更改为返回类型,则一切正常。但是当我改回动态模式时,azure使用旧模式。有任何想法吗 ?

仅供参考,我的动态架构看起来像这样

[DataContract]
public class HigscoreItem
{
public HigscoreItem(Int32 aq, Int32 sec, string userId, Int32 rank, bool npb, Int32     distance)
{
            AnsweredQuestions = aq;
            Seconds = sec;
            UserId = userId;
            Rank = rank;
            NewPersonalBest = npb? 1 : 0;
            DistanceLeft = distance;
        }
        [DataMember(Name = "answeredquestions")]
        public Int32 AnsweredQuestions;
        [DataMember(Name = "seconds")]
        public Int32 Seconds;
        [DataMember(Name = "userid")]
        public string UserId;
        [DataMember(Name = "rank")]
        public Int32 Rank;
        [DataMember(Name = "distanceleft")]
        public Int32 DistanceLeft;
        [DataMember(Name = "newpersonalbest")]
        public Int32 NewPersonalBest;
    }

}

1 个答案:

答案 0 :(得分:0)

正如Knutdag在上面的评论中指出的那样,整数零不是序列化的,因此进入数据库的对象看起来不同,如果启用动态模式,数据库将相应地更改其模式。

在进入生产环境时,您应该关闭动态模式,这样您就不会因为新版本中的错误(如int 0)或甚至是恶意插入而导致数据丢失。我们的想法是,一旦您的应用程序处于活动状态,您就决定了您的架构,并且您不需要在没有明确的情况下进行更改。动态模式是一种初始开发工具,它使您可以灵活地让系统端到端地工作,同时您仍然可以确定客户端数据模型的外观。一旦投入生产,您就拥有真实的数据,并且您希望手动管理架构更改以确保顺利进行