2

我的 Web 应用程序中有各种自定义数据类型来映射数据库中的一些数据。

就像是:

Person
Id
Name
Surname

我需要在我的大多数应用程序页面中列出人员列表

我正在考虑创建一个 getter 属性,它从数据库中获取人员列表并以这种方式存储到缓存中,我不必每次都调用数据库

类似的东西(伪代码)

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

我不认为你应该把它放在你的Person课堂上,因为它访问数据库 HttpContext.Current.Cache. 此外,我认为您应该将其设为方法而不是属性,以暗示这可能是一个“冗长”的操作。所以,在这两个选项中,我会把它放在基Page类上。

于 2010-02-26T17:21:32.480 回答
2

我认为将它放在您的基本页面中会是更好的选择。

根据您的应用程序架构,将与流程相关的代码放在您的域类中可能是一个问题。不过,有些人在 DDD(领域驱动设计)类型的应用程序中使用它。

更好的是,我通常会尝试将这些实现细节隐藏在服务类中。您可以拥有一个PersonService包含上述方法和所有人员相关操作的类。这样,任何需要个人信息的页面都会简单地调用PersonService; 您可以将您的页面代码集中在与 GUI 相关的代码上。

于 2010-02-26T17:30:40.713 回答