我正在使用已启用软删除的Javascript库在Azure移动服务中使用表。删除部分工作正常,但取消删除导致我的问题。我看了一遍,似乎找不到任何关于如何实际取消删除软删除记录的文档。我尝试更新记录并将__deleted字段设置为false,但这只会返回412错误“Precondition Failed”。
function addUser(user) {
return $q(function (resolve, reject) {
var users = aadClient.getTable("user");
var newUser = { id: user.userPrincipalName, name: user.givenName + " " + user.surname };
users.where({ id: user.userPrincipalName })
.read({ __includedeleted: true })
.done(function (results) {
if (results.length < 1) {
users.insert(newUser).done(function (result) {
resolve(result);
}, function (err) {
reject(err);
});
} else {
results[0].__deleted = false;
users.update(results[0]).done(function (result) {
resolve(result);
}, function (err) {
reject(err);
});
}
});
})
}
答案 0 :(得分:1)
Undelete是对/ table / tablename / recordId的POST。看起来我们还没有在JS SDK中添加该方法。因此,直接执行ajax请求可能是最快的。
您还可以查看更新表的插入脚本以捕获冲突,并在插入过程中解决它并使客户端脱离图片。这是我建议的路径。
(让我知道您正在使用的后端类型,如果需要,我可以看看是否可以发布如何执行此操作的片段)