2011-06-30 19 views
1

我試圖創建一個公開由實體框架模型表示數據庫中的WCF數據服務,並運行到一個問題,運行鍼對一個HTTP POST請求表具有多個1 *繼承。基於EF模型在WCF數據服務項目中的多個環節中創建條目

實體框架表如下: Model

大多數表與一個父實體可以通過POST訪問到母體URI,即,「http://url/data.svc/parent(id)」。我遇到的問題是由於多重繼承,我無法使用此方法。我可以允許一個FK爲空,並用一個單獨的PUT操作進行更新,但這只是錯誤的代碼。

我使用JSON創建HTTP請求。這裏是什麼,我一直在試圖

POST http://url/data.svc/Order_Item HTTP/1.1 
User-Agent: Fiddler 
Accept: application/json 
Content-Type: application/json 

{"Count": 2, "Item": {"uri": "http://url/data.svc/Items(ID)"}, "Order": {"uri": "http://url/data.svc/Order(ID)"}} 

的InitializeService方法如下的例子:

public static void InitializeService(DataServiceConfiguration config) 
    { 
      config.SetEntitySetAccessRule("*", EntitySetRights.All); 
      config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All); 
      config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    } 

我知道,這可能是非常簡單的,但可能有人幫助我上張貼的語法鏈接的實體?謝謝你在前進

+0

嗯,顯然語法問題......這麼工作的JSON片段。 { 「計數」: 「5」, 「訂單」:{ 「__metadata」:{ 「URI」: 「URL/Data.svc /令(2)」}} , 「項」:{ 「__metadata」:{ 「URI」: 「URL/Data.svc /項目(1)」}} } – Couradical

回答

0

你應該能夠做到這一點使用批處理請求,合成一個請求發佈新的OrderItem的,和一個請求的更新對其他實體的鏈接。它應該類似於以下內容。

[URI]/$批次

[1] POST [URI] /順序(1)/ Order_Item

[2] POST [URI] /(1)項/ Order_Item/$鏈路

看來你在用小提琴。您還可以使用WCF數據服務客戶端並完成相同的工作,並瞭解請求在Fiddler中的外觀。

如何使用$批量查詢的信息:這裏 http://msdn.microsoft.com/en-us/library/dd744839.aspx

相關問題