2012-02-29 1 views
0

私はPriceとPriceGroupエンティティを持っており、このように同時に両方のエンティティを更新したいと考えています: DataContext.AddObject( "Prices/PriceGroup"、oEditPrices); DataContext.UpdateObject(oEditPrices); DataContext.SaveChanges();WcfデータサービスエンティティのUpdateObject

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を使用します。 –

+0

問題は唯一の価格/ PriceGroup2つのエンティティを一度に更新するので、私は上記のように1つのオブジェクトで2つのエンティティを更新するための最良の方法は何かを知りたい –

答えて

0

AddObjectの最初のパラメータは、エンティティセットの名前でなければなりません。だからスラッシュはありません(私はAPIが検証しないことを知っていますが、残念ながらそれはすべきです)。それがおそらく失敗する理由です(私はHTTPトレースなしでは検証できません)。

AddObjectを呼び出す場合、UpdateObjectを同じインスタンスで呼び出す必要はありません。

新しいオブジェクトを追加して既存のオブジェクトに関連付けることを目標とする場合は、AddRelatedObjectを呼び出すことができます。上記の場合、次のようになります。

DataContext.AddRelatedObject(existingPriceObject、 "PriceGroup"、newPriceGroup); DataContext.SaveChanges();

これを1つの操作(トランザクションのようなもの)として実行する必要がある場合は、バッチオプションをSaveChanges呼び出しに渡すことができます。

関連する問題