BreezeJS和Windows Mobile服务插入/更新记录

时间:2013-06-03 19:13:45

标签: javascript breeze azure-mobile-services

我没有遇到任何问题,因为我无法弄明白如何执行更新/插入。

除了保存部分之外,做这样的事情很有效。

var datas = new breeze.DataService({
    hasServerMetadata: false,
    serviceName: serviceName   // my endpoint
});

var manager = new breeze.EntityManager({ dataService: datas });
// manager.enableSaveQueuing(true);

var qu = breeze.EntityQuery.from("notification").where("id", "==", 1);

manager.executeQuery(qu).then(function (data) {
    data.results[0].isRead = false;
    console.log(manager.hasChanges());
    manager.saveChanges();
});

我们如何在天蓝色移动服务中使用breezejs来插入或更新记录。

1 个答案:

答案 0 :(得分:0)

我可以看到您没有从服务中获取元数据(您设置hasServerMetadata: false)并且您没有在客户端上定义任何元数据。因此,您有一个空的BreezeJS实体模型,这意味着每个查询都返回原始JavaScript对象而不是Breeze实体

这些原始对象不在缓存中,它们不会被跟踪更改,它们没有任何属性更改通知或绑定支持。它们只是数据。

manager.hasChanges()将始终为false,manager.saveChanges()将不会执行任何操作...因为您从未拥有任何实体。

我还没有尝试过BMS和AMS(又名“ZUMO”)并且对此并不了解。我相信它会适用于Breeze。但有人必须花一些时间来发现如何从服务器获取元数据,如何插入/更新/删除,以及ZUMO数据如何通过网络传输。

我的理解是ZUMO对象是直接映射到SQL Azure表的平面对象。它们与其他实体/表没有关联,您必须手动管理外键和相关实体加载。它还没有为商业应用程序中典型的富对象模型做好准备。

目前,我建议您坚持使用ZUMO自己的客户端组件来访问数据。

我们将在适当的时候制作一个Breeze故事。