データベースにデータを格納するためのパフォーマンスヒットはありますか?はい。あなたのユーザーは気付く可能性がありますか?おそらくそうではありません。これと他のすべての小さなデータ呼び出しがアプリケーションに大きな影響を与えることがありますか?絶対に。ほとんどのものと同様に、ニーズ、利点、およびリソースのバランスを取る必要があります。
まず、ショッピングカートをデータベースに保存する理由を尋ねます。ウェブファームのシナリオやw3wpのリセットや失敗の場合の永続性などの理由が考えられます。
Webファームシナリオでは、アウトプロセスセッションモード、データベースセッションモード、またはインプロセスモードのスティッキセッションを使用するソリューションがいくつかあります。詳細はASP.NET session modesをご覧ください。
カートを永続化したり、メモリ内のボラティリティから保護しようとしているのであれば、迅速に実装するソリューションとしてセッション状態をデータベースに移動するだけで済みますが、明示的なデータベーステーブル。セッションのサイズ、ショッピングカートのデータのサイズ、ネットワークとハードウェアのパフォーマンス、およびシステムの他の多くの側面が結果に影響する可能性があります。だから、測定、変化、測定、比較する。
なぜあなたはこれをしたいですか?アプリケーションが単一のサーバーでホストされ、ファームの一部ではない場合は、一般的にInProcが優先されます。 – Yuck
セッションに保存されていたEFを使用して既に保存していたオブジェクトを自分のデータベースに書き戻すのが難しいためでした。私はObjectStateManager例外で終わった。私の最後のコメントを参照してください:http://stackoverflow.com/questions/6425983/ef4-1-how-to-deal-with-items-being-added-to-an-objects-collection – FloatLeft