【问题标题】:Merging multiple tables in Azure mobile service在 Azure 移动服务中合并多个表
【发布时间】:2013-12-10 10:06:32
【问题描述】:

在 C# 中编写 Web 服务时,我们创建对象,然后将其序列化并将其发送给客户端。我想在 Azure 移动服务中做类似的事情

我有两张桌子

  1. 订单主管
  2. OrderRow

Orderhead 包含订单信息(总价格、客户 ID、创建日期等),并且 OrderHead 表中的一条记录可以在 OrderRow 中包含多个项目。 Orderrow 表包含有关订购商品的详细信息(订购的商品 ID、商品名称、价格等)

如何将它们连接在一起并从自定义 api 获得单一响应。类似于下面的东西

{
    "orderheadid": "3424232",
    "totalprice": 423423,
    "orderrow": [
        {
            "itemid": "32423",
            "itemprice": 2
        },
        {
            "itemid": "23",
            "itemprice": 333
        },
        {
            "itemid": "223",
            "itemprice": 4
        }
    ]
}

或者我应该分别从客户端站点调用每个服务吗?

我知道我可以使用 mssql 对象进行 INNER JOIN 查询,但是它不会返回上面给出的结构化 JSON 对象。有人可以启发我。

提前感谢您的宝贵时间

【问题讨论】:

    标签: sql-server json azure azure-mobile-services


    【解决方案1】:
    1. 从表 1 中检索值并将其分配给变量
    2. 从表 2 中检索值并将其作为新属性添加到上面创建的变量中。

    像下面这样就可以了

    var orderHead;
    var orderRow;
    var orderRowTable  = table.getTable('orderhead');
    orderHeadTable.where({
    //any other query details
        customerid:request.user.userId
        }).read({
            success:function(result){
                console.log(result.length);
                if(result.length===0){
                    response.send(400, { message : 'Cart empty' });
                }else{
                    orderHead = result[0];
                    getOrderRows()
                }
            },
            error:function(){
                response.send(400, { message : 'error while reading order information' });
            }
        });
    
    function getOrderRows(){
         var orderRowTable  = table.getTable('orderrow');
        orderRowTable.where({
            orderheadid:orderHead.id
        }).read({
           success:function(result){
               if(result && result.length===0){
                   response.send(400, { message : 'Cart empty' });
               }else{
                    orderRows = result;
                    orderHead.orderRows = orderRows;
                    response.send(200, orderHead);        
               }
           },
           error:function(){
               response.send(400, { message : 'error while reading order information - row' });
           } 
        });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-17
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      相关资源
      最近更新 更多