2

データベースからいくつかのデータをマップするために、Webアプリケーションにさまざまなカスタムデータ型があります。

何かのようなもの:

Person
Id
Name
Surname

そして、私のアプリケーションのほとんどのページに人のリストが必要です

データベースから人のリストを取得してキャッシュに保存するゲッタープロパティを作成することを考えていました。この方法で、毎回データベースを呼び出す必要はありません。

(擬似コード)のようなもの

public List<Person> Persons 
{
   get { return if cache != null  return List of Persons from cache  else get from the database;}
}

このゲッターはどこに置けばいいですか?Personクラス定義またはベースページ(他のすべてのページが継承するページ)

ありがとう

4

2 に答える 2

2

あなたのベースページにそれを置くことはより良いオプションだと思います。

アプリケーションアーキテクチャによっては、プロセス関連のコードをドメインクラスに配置することが問題になる場合があります。ただし、DDD(ドメイン駆動設計)タイプのアプリケーションで使用するものもあります。

さらに良いことに、私は通常、これらの実装の詳細をサービスクラスに隠そうとします。PersonService上記のメソッドとすべての人に関連する操作を含むクラスを持つことができます。このように、個人情報を必要とするページは、単にPersonService;を呼び出します。また、ページコードをGUI関連のコードに集中させることができます。

于 2010-02-26T17:30:40.713 に答える
2

データベースにPersonアクセスするので、クラスに入れるべきではないと思います。さらに、これが「長い」操作である可能性があることを意味するために、プロパティではなくメソッドにする必要があると思います。したがって、2つのオプションのうち、基本クラスに配置します。 HttpContext.Current.CachePage

于 2010-02-26T17:21:32.480 に答える