これは実際にはコードの構造の問題であり、パフォーマンスを念頭に置いてどのように処理を進めるかが少しわかりません。
アプリケーションには、DB に送信されるすべてのリクエストで実行する必要があるメソッドがあり、URL に基づいていくつかの値を取得してから、他のことが発生する可能性があります (CMS は、どのサイトが見られているかを知る必要があると考えてください)。
私は常にこれを「BaseController」で実行しInitialize
ており、他のすべてのコントローラーはこれを継承しており、うまく機能しているように見えました。つまり、結果をパブリック変数に入れ、ActionResult
必要なものにアクセスできました。重要なのは、ページ要求ごとに 1 回だけ呼び出されることでした。
現在、構造をより「ウィジェット」スタイルに根本的に変更しています。すべてのウィジェットがこのデータを必要とし、ページ上に 1 から ... までの多くのウィジェットが存在する可能性があります。
各ウィジェットのモデルを取得するとき、ウィジェットの「実際の」データを取得する前に、毎回 DB にアクセスして同じ情報を取得したくありません。
したがって、ループの前に一度「データ」を取得し、それを各ウィジェットのメソッド呼び出しにフィードする必要があります....または、これはある種の依存性注入が役立つケースですか? (私はその分野で少し「グリーン」です:P)
各ウィジェットメソッドを次のように書きたくないだけです
public List<string> WidgetAResult (object TheCoreObj, ... other stuff ...){}
また、「コア」呼び出しで何かが変更された場合、それらすべてを更新する必要があるため、各ウィジェットの「sql」スクリプトの最初に同じコードを使用したくありません...
どんな考えでもいただければ幸いです
乾杯
ロビン