これは不可能だと確信しています。は、のObjectStateManager
変更を追跡および保存するための核心でありObjectContext
、コンテキストと密接に絡み合っています。移植するだけの手術が必要です。より技術的に言えば、大量のリフレクションを適用せずにクローンを作成することはできません。これは、その状態のほとんどが内部で管理されているためです。そしてObjectContext.ObjectStateManager
、セッターがありません。
問題の根本は、ビューごとにコンテキストを持つことです (少なくとも、1 つのグローバル コンテキストでさえありますか?)。ビューごとのコンテキストは、リッチ クライアント アプリケーションの実行可能なオプションですが、非同期処理が必要になるとパラメーターが変更されます。長いコンテキスト ライフタイムはもはやオプションではありません。
解決策は、エンティティ オブジェクトの代わりにビュー モデルを UI にバインド (切断) し、コンテキストを別のスレッド (つまり ) でインスタンス化してTask
変更を保存することです。
EF 6 (現在はアルファ版) のもう 1 つの新機能は、組み込みの asyncです。私はまだそれを試したことはありませんが、有望に見えます。