2011-05-20 51 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)" } 

甜!

[編輯]

剛一說明以供將來參考:它看起來像只有一個鏈接可以同時使用此方法來創建。