在C#中编写Web服务时,我们创建对象然后序列化并将其发送到客户端。我想做一些类似于Azure移动服务的东西
我有2张桌子
Orderhead有订单信息(totalprice,customerid,创建日期等),OrderHead表中的一条记录可以在OrderRow中有多个项目。 Orderrow表包含有关订购商品的详细信息(订购商品,商品名称,价格等)
如何将它们连接在一起并从自定义API获得单个响应。类似于下面的东西
{
"orderheadid": "3424232",
"totalprice": 423423,
"orderrow": [
{
"itemid": "32423",
"itemprice": 2
},
{
"itemid": "23",
"itemprice": 333
},
{
"itemid": "223",
"itemprice": 4
}
]
}
或者我应该从客户端站点单独调用每项服务?
我知道我可以使用mssql对象进行INNER JOIN查询,但是它不会返回上面给出的结构化JSON对象。请有人赐教。
感谢您提前的时间
答案 0 :(得分:0)
如下所示
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' });
}
});
}