データベース内のテーブルに基づいてモデルを定義しました。現在、データがほとんど変化しないモデルがいくつかあります。たとえば、e-comm サイトが販売する製品のカテゴリ、製品を出荷する都市などです。これらは頻繁には変更されないため、データベースへのアクセスを避けるために、現在は静的変数として保存されています。
問題は、これらの静的変数をコード内のどこに配置するかです。現在、ProductCategory クラス (モデル表現でもあります) では、空の場合はデータベースを呼び出して製品カテゴリをロードする静的リストが定義されています。同様に、City クラスにも同様の静的 List などがあります。
これらの静的リストは、アプリケーション全体で使用されます。StaticData というクラスを作成し、このクラス内にすべての静的リストを保持することを考えていました。それは今の代わりに
ProductCategory.AllCategories.Find(p => p.Id = 2)
私は持っているでしょう
StaticData.AllProductCategories.Find(p => p.Id = 2)
どちらがより良いアプローチだと思いますか? また、テスト容易性とコードの分離も目指しています。
また、これらを達成するためのより良い方法はありますか? コードで同様のことを行うにはどうすればよいですか?