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

时间:2014-01-13 01:12:34

标签: azure azure-mobile-services

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

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

检查这是todo项目的最佳方法是什么,插入数据,否则更新服务器端的现有记录?

1 个答案:

答案 0 :(得分:5)

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

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