現在、WCF RESTful サービスを使用していInstanceContextMode = InstanceContextMode .PerCall
ます。これを行ったのは、サービス メソッドが Entity Framework モデルと対話しPerCall
、Single
. ここで、大規模なデータセットを返す新しいサービス メソッドを追加したいと考えました。私の最初の考えは、サービスの起動時にスレッドをスピンオフし、データセットをキャッシュして、サービスメソッドが呼び出されたときにデータベースにヒットする必要がないようにすることでした...キャッシュを返すだけです。ただし、それに関する問題は、を使用しているためこれを行うことができないPerCall
ため、インスタンスが破棄された後、キャッシュも破棄されることです。
私の質問は、どのようなキャッシュ オプションがありますか? 本当に必要ですPerCall
か、それともシングルトンにすることができますか?ただし、呼び出しごとに EF コンテキストが新しいことを確認してください。