2

我正在以这种方式使用微风创建新实体:

var item = manager.createEntity("ExercisesAndMuscles", initialValues);
 saveChanges().fail(addFailed);
 logger.log("id is", item.Id);

function saveChanges() {
        return manager.saveChanges();

    }

在控制台中是 -1,根据 Breeze 文档,这是应该的。当我刷新页面时,我看到 id 不再是 -1,即现在 id 是永久 id 表单数据库。

所以我的问题是,如何在不刷新页面的情况下自动获取此 ID。我知道一种可能的解决方案是在客户端生成 id,但我宁愿不这样做。

还有其他方法吗?如果在客户端生成 id 是唯一的方法,那么正确的方法是什么?

4

1 回答 1

1

saveChanges 异步发生,因此在您记录时,id 确实是-1,但不久之后它就会变成永久性的。

var item = manager.createEntity("ExercisesAndMuscles", initialValues);
saveChanges().then(showId).fail(addFailed);

function showId () {
    logger.log("id is", item.Id);
}

function saveChanges() {
    return manager.saveChanges();
}

在返回的promise完成后记录id,如图所示,它将不再是-1。

于 2013-09-01T21:05:19.827 回答