2009-07-18 14 views
29

私はEntity Frameworkを使用しています。Entity Frameworkでオブジェクトをキャッシュする方法

私のデータベースには、出身の人と起源の国が格納されています。私が人物オブジェクトを読み込んでいるとき、私はそれぞれの人が起きた場所が何であるか知りませんでした。不必要な要求がないように国のリストをキャッシュする方法はありますか?

+0

バンプ。ルックアップテーブルのキャッシュに関して、5年以上の間にEFで変更されたことはありますか?具体的には、EFはこれを行う方法を統合しましたか? – RLH

答えて

40

Luhmannは既に私の仲間に言ったように、JarekはEntity Frameworkの優れたサンプルキャッシングプロバイダを持っています。彼はhereについて話しています。

ただし、このアプローチは過度のものであることがあります。キャッシングの国は、その努力が価値のない優れた例だと思われます。何らかのアドホックキャッシングを実装する方が良いかもしれません。

これを実行しようとすると、インスタンスのEntity Frameworkエンティティを一度に1つのObjectContextにしか取り付けることができないという主な問題があります。つまり、同時に(Webサイトのように)あなたはキャッシュから項目を取得し、それらを盲目的に使用するだけで問題が発生します。

あなたが必要とするのはクローニングキャッシュです。つまり、キャッシュから何かをつかんでクローンするときです。

は、私は、これは

アレックス・ジェームス

Entity Frameworkのチームマイクロソフトのに役立ちます。このTip 14 - How to cache Entity Framework Reference Data

希望を行う方法を示し先端をまとめます。

+0

あなたがそのチップを書いた瞬間から、EF 4.1で参照データをキャッシュするもっと簡単な方法がありますか? – Romias

+3

良いヒントアレックス、EFの新しいリリースでより良いアプローチがありますか? – NoChance

0

私はその国のリストを最初にキャッシュし、検索された各人に適切な国を割り当てます。人をキャッシュすることを決定した場合は、キャッシュされた国に依存するようにし、国/国リストを更新するときにそれらを無効にする必要があります。

関連する問題