如果不存在记录,则 azure 脚本插入,否则在服务器端更新

标签 azure azure-mobile-services

我正在使用 Azure 移动服务开发我的第一个 Windows Phone 应用程序,我使用下面的代码将记录插入到 azure

await App.MobileService.GetTable<TodoItem>().InsertAsync(todo);

检查待办事项是否已存在的最佳方法是什么,插入数据,否则更新服务器端的现有记录?

最佳答案

您可以使用服务器端表脚本在完成插入之前检查记录是否存在。下面是一个示例脚本,用于检查表中的任何项目是否具有匹配的“文本”值,如果是,则不执行插入。

function insert(item, user, request) {
    var table = tables.getTable('todoItem');
    table.where({ 
       text: item.text
    }).read({
       success: upsertItem
    });

    function upsertItem(existingItems) {
        if (existingItems.length === 0) {
            request.execute();
        } else {
        item.id = existingItems[0].id;
          table.update(item, {
            success: function(updatedItem) {
                request.respond(200, updatedItem)
            }
          });
        }
     }
 }

关于如果不存在记录,则 azure 脚本插入,否则在服务器端更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21082490/

相关文章:

entity-framework - 如何 POST/PATCH 到 Azure 移动服务上的多对多关系实体?

android - 在 android 中使用 azure 移动服务

azure - Safari 推送通知与 Windows Azure

Azure 搜索建议相关性

.net - Azure 角色内缓存作为 NHibernate 二级缓存?

node.js - Azure 移动服务上的 NodeMailer 无法正常工作

javascript - 找不到可变的azure移动应用程序

azure - 如果在创建 Azure VM 时使用 VM 应用程序,则应用程序的静默安装将无法安装驱动程序

azure - 使用证书调用 Windows Azure ACS 时出错

c# - 从 .NET 后端 Azure 移动服务中的身份验证 token 获取用户信息,例如姓名、电子邮件 ID 等