Breeze 如何在调用saveChanges之前更新实体?

Breeze 如何在调用saveChanges之前更新实体?,breeze,Breeze,我正在给我的breezeController打电话,从Northwind那里获取产品。我了解到,您可以通过调用saveChanges()来跟踪实体上的更改并保存远程服务上的所有更改 我没有找到的是如何更新实体属性。如何更改ProductID(1)的产品名称 注意:我没有使用Knockout或AngularJS。这是一个普通的HTML文件 我呼吁: var loadProducts = function(categoryID) { var query = breeze.EntityQuer

我正在给我的breezeController打电话,从Northwind那里获取产品。我了解到,您可以通过调用saveChanges()来跟踪实体上的更改并保存远程服务上的所有更改

我没有找到的是如何更新实体属性。如何更改ProductID(1)的产品名称

注意:我没有使用Knockout或AngularJS。这是一个普通的HTML文件

我呼吁:

var loadProducts = function(categoryID) {
    var query = breeze.EntityQuery
        .from("Products")
        .where("CategoryID", "eq", categoryID)
        .orderBy("ProductName");

    return manager.executeQuery(query);
}

loadProducts(value).then(function (data) {
    $("#tableBody").empty();
    data.results.forEach(function (item) {
        console.log(item.ProductName);
    });
}).fail(function (error) {
    console.log(error);
});
调用saveChanges()之前需要做什么

编辑=>解决方案:

我最后使用的是getEntityByKey()来修改特定实体

var productToModify;
managerProducts = new breeze.EntityManager(serviceName);
职能:

var loadProducts = function (categoryID) {
    var query = breeze.EntityQuery
        .from("Products")
        .where("CategoryID", "eq", categoryID)
        .orderBy("ProductName");

    return managerProducts.executeQuery(query);
}

var loadProductByID = function (productID) {
    var query = breeze.EntityQuery
        .from("Products")
        .where("ProductID", "eq", productID);

    return managerProducts.executeQueryLocally(query);
}
召唤


如果你有能力像承诺返回时那样对数据进行预测,这是我首先要尝试的-

data.results.forEach(function (item) {
    item.ProductName = "New Product Name";
    console.log('Changes ? - ', item.entityAspect.entityState);
});

如果正确设置产品名称,应输出哪些更改?-
isModified

如果您有能力像承诺返回时一样对数据进行预处理,我将首先尝试-

data.results.forEach(function (item) {
    item.ProductName = "New Product Name";
    console.log('Changes ? - ', item.entityAspect.entityState);
});

如果正确设置产品名称,应输出哪些更改?-
isModified

如果您有能力像承诺返回时一样对数据进行预处理,我将首先尝试-

data.results.forEach(function (item) {
    item.ProductName = "New Product Name";
    console.log('Changes ? - ', item.entityAspect.entityState);
});

如果正确设置产品名称,应输出哪些更改?-
isModified

如果您有能力像承诺返回时一样对数据进行预处理,我将首先尝试-

data.results.forEach(function (item) {
    item.ProductName = "New Product Name";
    console.log('Changes ? - ', item.entityAspect.entityState);
});

如果正确设置产品名称,应输出哪些更改?-<代码>已修改

只需将新值分配给实体:

entityToUpdate = data[0];
entityToUpdate.ProductName = 'new value' // entityToUpdate.entityAspect.entityState is updated
manager.saveChanges().then(...) // send data to the server

Breeze文档非常优秀:

只需将新值分配给实体:

entityToUpdate = data[0];
entityToUpdate.ProductName = 'new value' // entityToUpdate.entityAspect.entityState is updated
manager.saveChanges().then(...) // send data to the server

Breeze文档非常优秀:

只需将新值分配给实体:

entityToUpdate = data[0];
entityToUpdate.ProductName = 'new value' // entityToUpdate.entityAspect.entityState is updated
manager.saveChanges().then(...) // send data to the server

Breeze文档非常优秀:

只需将新值分配给实体:

entityToUpdate = data[0];
entityToUpdate.ProductName = 'new value' // entityToUpdate.entityAspect.entityState is updated
manager.saveChanges().then(...) // send data to the server

Breeze文档非常优秀:

您是想在客户端还是服务器端更新它?另外,我没有看到一个保存方法。你忘了在什么地方显示它吗?如果我是正确的,在使用Breeze时,我首先需要通过EntityManager在客户端保存更改。之后,我只需调用manager.saveChanges();我不知道如何在调用manager.saveChanges()之前更新客户端的实体。如果我在上面的代码中调用saveChanges,则不会发生任何事情,因为EntityManager未检测到本地数据的任何更改。因此,如果不使用KO或Angular,您将使用默认适配器。。。我会添加一个快速的答案,但我需要一些更多的信息可能…你是想在客户端或服务器端更新这个?另外,我没有看到一个保存方法。你忘了在什么地方显示它吗?如果我是正确的,在使用Breeze时,我首先需要通过EntityManager在客户端保存更改。之后,我只需调用manager.saveChanges();我不知道如何在调用manager.saveChanges()之前更新客户端的实体。如果我在上面的代码中调用saveChanges,则不会发生任何事情,因为EntityManager未检测到本地数据的任何更改。因此,如果不使用KO或Angular,您将使用默认适配器。。。我会添加一个快速的答案,但我需要一些更多的信息可能…你是想在客户端或服务器端更新这个?另外,我没有看到一个保存方法。你忘了在什么地方显示它吗?如果我是正确的,在使用Breeze时,我首先需要通过EntityManager在客户端保存更改。之后,我只需调用manager.saveChanges();我不知道如何在调用manager.saveChanges()之前更新客户端的实体。如果我在上面的代码中调用saveChanges,则不会发生任何事情,因为EntityManager未检测到本地数据的任何更改。因此,如果不使用KO或Angular,您将使用默认适配器。。。我会添加一个快速的答案,但我需要一些更多的信息可能…你是想在客户端或服务器端更新这个?另外,我没有看到一个保存方法。你忘了在什么地方显示它吗?如果我是正确的,在使用Breeze时,我首先需要通过EntityManager在客户端保存更改。之后,我只需调用manager.saveChanges();我不知道如何在调用manager.saveChanges()之前更新客户端的实体。如果我在上面的代码中调用saveChanges,则不会发生任何事情,因为EntityManager未检测到本地数据的任何更改。因此,如果不使用KO或Angular,您将使用默认适配器。。。我会添加一个快速的答案,但我需要一些更多的信息可能。。。