2011-10-27 3 views
1

複合プロパティMyListを持つエンティティMyTabがあるとします。 WCFは、コードのような更新のためのMyタブをフォルス生成しますwcf ria servicsでコンポジットデータを更新できない

のみ複合データが変更
public void UpdateMyTab(MyTab currentMyTab) 
{   
    this.ObjectContext.MyTabs 
         .AttachAsModified(currentMyTab, 
             this.ChangeSet.GetOriginal(currentMyTab)); 
} 

、Myタブのデータが変更されていない、その変更を提出、私はエラーを取得します「値がnullにすることはできません\ rを\名前nParameter:元" MyTabのオリジナルはありません。チェンジセットにはMyTabとMyListという2つの項目があります。

この問題を解決するにはどうすればよいですか?

答えて

2

あなたはをAttachAsModified calllingする前に、そのnullの場合は、最初のGetOriginalの戻り値をチェックする必要があります。 GetOriginalがnullを返す場合をObjectContextにのみ添付します。私はそれをテストしていないが、私はあなたのメソッドを次のように更新します。

public void UpdateMyTab(MyTab currentMyTab) {   
    var original = this.ChangeSet.GetOriginal(currentMyTab); 

    if (original != null) { 
    this.ObjectContext.MyTabs.AttachAsModified(currentMyTab, original); 
    } 
    else { 
    this.ObjectContext.MyTabs.Attach(currentMyTab); 
    } 
} 
+0

いい考えです。ありがとう。それは働いている。 – KentZhou