Azure移动服务:插入多个表

时间:2013-12-04 04:47:13

标签: sql-server arrays azure middleware azure-mobile-services

我正在我的应用程序中构建一个食物订购系统(html 5 sdk)。创建项目时,项目可以有多个浇头(额外的奶酪,额外的鸡肉等)。

所以这就是我想做的事情

  1. 将项目插入Items表(我可以简单地执行)
  2. 获取从应用程序发送的浇头数组并将其插入Toppings表格(不知道如何发送浇头数组。每个浇头都有名称和价格)我可以将它们作为属性添加到商品中插入服务请求并发送??
  3. 问题

    我可以毫无问题地插入一个项目,但我不知道如何获取浇头的数组列表并将其插入到Topping表中。

    我可以在Azure移动服务服务请求中将对象数组作为属性发送吗?

    感谢您的提前时间。

1 个答案:

答案 0 :(得分:3)

解决此问题的一种方法是在Items表上有一个自定义插入脚本,以便它解析数组并将数组的每个项插入Toppings表(如果需要,包括项ID)。例如:

function insert(item, user, request) {
    var toppings = item.Toppings;
    item.Toppings = null;
    request.execute({ success: function() {
        var toppingsTable = tables.getTable('Toppings');
        var count = 0;
        toppings.forEach(function(topping, index) {
            topping.itemId = item.id;
            toppingsTable.insert(topping, {
                success: function() {
                    count++;
                    if (toppings.length === count) {
                        request.respond();
                    }
                },
                error: function(err) {
                    console.warn('Error while inserting toppings objects', err);
                    count++;
                    if (toppings.length === count) {
                        request.respond();
                    }
            });
        }});
    }