当用 C# 编写 Web 服务时,我们创建对象,然后序列化并将其发送到客户端。我想做一些类似于 Azure 移动服务中的事情
我有 2 张 table
- 订单头
- 订单行
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 对象。有人可以启发我吗?
感谢您提前抽出时间
最佳答案
- 从表 1 中检索值并将其分配给变量
- 从表 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' });
}
});
}
关于sql-server - 合并Azure移动服务中的多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20491422/