2

わかりました...私はグーグルを試しましたが、多くのヒットは得られませんでした。私は虐待したくないので、これは尋ねるのに最適な場所の1つであり、EFは十分に文書化されていません。

GetOriginal()がUpdateCmsProductCategoryでnullを返すため、失敗します。これは、currentCmsProductCategoryがChangeSetにないことを意味すると思います。わかりました...チェンジセットに入れるにはどうすればよいですか?

これがシーケンスです...

CmsProductCategoryをWcf上にプルダウンします。変更します。Wcfupdateメソッドを呼び出します...

public void UpdateProductCategory(CmsProductCategory category)
{
    domainservice.UpdateCmsProductCategory(category);
}

Domainservideメソッドを呼び出す...

public virtual void UpdateCmsProductCategory(CmsProductCategory currentCmsProductCategory)
{
    this.Context.AttachAsModified(currentCmsProductCategory, 
        this.ChangeSet.GetOriginal(currentCmsProductCategory));
}

そして、それは機能するはずです-しかし、いいえ、GetOriginal()が失敗したときの例外です。コードがそれを変更してからWcfに渡すまでの間にステップが欠けているように感じます。

良いドキュメントへのヒント/ポインタはありますか?

ありがとう!

4

1 に答える 1

1

あなたの問題はおそらくあなたが「文脈」を失うことです。

「this.Context」を更新するために呼び出しを行うとき、それを読み取ったものと同じではありません。

WCFには、「呼び出しごと」と「セッションごと」の概念があります。「呼び出しごと」はデフォルトであるため、ドメインサービスの新しいインスタンスを取得しています。セッションごとに使用して解決できる場合があります。

このリンクをご覧ください:http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

また、wcfを介してデータを転送せずに、実行していることが機能することを確認するためのテストを作成してみてください。

于 2009-08-27T18:04:15.960 に答える