我没有遇到任何问题,因为我无法弄明白如何执行更新/插入。
除了保存部分之外,做这样的事情很有效。
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来插入或更新记录。
答案 0 :(得分:0)
我可以看到您没有从服务中获取元数据(您设置hasServerMetadata: false
)并且您没有在客户端上定义任何元数据。因此,您有一个空的BreezeJS实体模型,这意味着每个查询都返回原始JavaScript对象而不是Breeze实体。
这些原始对象不在缓存中,它们不会被跟踪更改,它们没有任何属性更改通知或绑定支持。它们只是数据。
manager.hasChanges()
将始终为false,manager.saveChanges()
将不会执行任何操作...因为您从未拥有任何实体。
我还没有尝试过BMS和AMS(又名“ZUMO”)并且对此并不了解。我相信它会适用于Breeze。但有人必须花一些时间来发现如何从服务器获取元数据,如何插入/更新/删除,以及ZUMO数据如何通过网络传输。
我的理解是ZUMO对象是直接映射到SQL Azure表的平面对象。它们与其他实体/表没有关联,您必须手动管理外键和相关实体加载。它还没有为商业应用程序中典型的富对象模型做好准备。
目前,我建议您坚持使用ZUMO自己的客户端组件来访问数据。
我们将在适当的时候制作一个Breeze故事。