2011-05-20 52 views
0

我正在使用通过OData服务端点公开的EF数据模型。它具有通过多对多关系连接的Person和Group实体。如何通过OData HTTP协议链接两个现有项目(多对多)?

my data model

我想从现有的人与现有的集团通过的OData添加一个链接,但我一直无法弄清楚如何。 OData协议所规定here (link to odata.org)似乎说明,我需要做下面的HTTP请求人#1链接到组#1:

随着身体如下:

{ 
    __count: 1, 
    results: [{ 
     uri: "http://localhost:49432/MyService.svc/Groups(1)" 
    }] 
} 

然而,当我这样做,我得到以下错误:

400 Bad Request 
"Missing URI element. For link operations, URI element must be specified." 

我不知道什么URI元素丢失。我已经在请求URI和有效载荷中提供了...

我也尝试了其他几种方法,但迄今为止没有成功。有什么建议么?

谢谢!

回答

2

如果你想要做一个以上的链接,这里是你如何做到这一点:

  • 方法:合并
  • URI:“HTTP://本地主机:49432/MyService.svc /人(1 )”

有效载荷应该是这个样子:

{ 
    Groups: [ { __metadata: { uri:"http://localhost:49432/MyService.svc/Groups(1)" }, 
      { __metadata: { uri:"http://localhost:49432/MyService.svc/Groups(2)" } 
    ] 
} 

希望这有助于。

感谢 PRATIK

+0

谢谢!我一直在做Javascript的多个POST ...你知道如何去除多个链接吗? – 2011-05-26 03:51:34

+0

除了尝试将所有删除请求批量加入到一起之外,无法在单个请求中删除多个它们。 – Pratik 2011-06-07 16:31:39

+0

如何重建单个请求中的所有链接? – 2011-07-29 17:10:07

0

我说得对,除了请求的主体。它应该更简单:

{ uri: "http://localhost:49432/MyService.svc/Groups(1)" } 

甜!

[编辑]

刚一说明以供将来参考:它看起来像只有一个链接可以同时使用此方法来创建。