2012-02-29 41 views
0

我有價格和PriceGroup實體,我想同時更新兩個實體,如下所示: DataContext.AddObject(「Prices/PriceGroup」,oEditPrices); DataContext.UpdateObject(oEditPrices); DataContext.SaveChanges();WCF數據服務實體的更新對象

giving me error 

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> 
    <code></code> 
    <message xml:lang="en-US">The request URI is not valid. Since the segment 'Prices' refers to a collection, this must be the last segment in the request URI. All intermediate segments must refer to a single resource.</message> 
</error> 
+0

您能否抓住一個HTTP跟蹤並將其發佈在這裏?使用例如Fiddler。 – 2012-02-29 19:04:37

+0

問題只更新價格/ PriceGroup兩個實體一次,所以我想知道什麼是最好的方式來更新兩個實體與上述一個對象。 – 2012-03-01 13:06:07

回答

0

AddObject第一個參數必須是實體集的名稱。所以沒有斜槓(我知道API不驗證,它應該,不幸)。這可能是它失敗的原因(雖然我無法驗證沒有HTTP跟蹤)。

如果您調用AddObject,則不需要在同一個實例上調用UpdateObject,它將不起作用。

如果目標是添加一個新對象並將其與現有對象關聯,則可以調用AddRelatedObject。在上述情況下,它會是這樣的:

DataContext.AddRelatedObject(existingPriceObject,「PriceGroup」,newPriceGroup); DataContext.SaveChanges();

如果您需要將其作爲一項操作(類似於交易)執行,您可以將批量選項傳遞給SaveChanges調用。