私はプロデューサー/コンシューマーパターンを実装しています:
プロデューサー
- 検索条件に基づいてDBからオブジェクトを具体化します
- 追加のアプリケーション固有のフィルタリングロジックを適用します
- さらに処理するためにマテリアライズドオブジェクトをキューに入れます
コンシューマー(複数のスレッド)
- キューからマテリアライズされたオブジェクトを受け取ります
- マテリアライズされたオブジェクトからのデータを使用して電子メールテンプレートにデータを入力します
- マテリアライズされたオブジェクトの状態を更新します
- 新しいオブジェクトの状態をDBに保存します
問題
オブジェクトは、Entity Framework Code Firstを使用して、プロデューサースレッドに関連付けられたコンテキストを使用して実体化されます。
コンシューマースレッドには独自のコンテキストが必要です。
マテリアライズされたオブジェクト(各オブジェクトは実際にはオブジェクトグラフです)をプロデューサーコンテキストからコンシューマーコンテキストに移動することは可能ですか、またはオブジェクトを更新するためにコンシューマーのコンテキストでオブジェクトを再マテリアライズする必要がありますか?どうすれば移動できますか?