BreezeJS和Windows Mobile Service插入/更新记录

BreezeJS and Windows Mobile Service Inserting/Updating a Record

本文关键字:更新 新记录 插入 Service Windows Mobile BreezeJS      更新时间:2023-09-26

连接breeze查询azure移动服务rest端点没有问题,但是我不知道如何执行更新/插入。

这样做的效果很好,除了保存部分。

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();
});

如何在azure移动服务中使用breezejs来插入或更新记录

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

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

manager.hasChanges()将永远是假的,manager.saveChanges()不会做任何事情…因为你从来没有任何实体

我还没有尝试过微风与AMS(又名"ZUMO"),还不太了解它。我相信它会和Breeze一起工作。但是总得有人花点时间来发现如何从服务器获取元数据,如何插入/更新/删除,以及ZUMO数据如何在网络上流动。

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

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

我们会有一个微风的故事在适当的时候