我正在开发一个带有保存数据的系统的项目,并且我正在考虑使用数据访问方法来获取数据,以便将其交给我在事物表示方面的组件。我认为这是一个 N 层架构。这是我的想法:
表示层(WebForms 和用户控件)
\/
数据访问层(这是我的问题所在)
\/
业务对象(系统中每个实体的 C# 类)
\/
用于从数据库获取数据的现有 API(MS SQL 驱动)
在我的 DAL 中,我想使用系统中的特定 API 机制来获取业务对象,以便将它们传递给我的演示组件。我知道我创建各种实用程序存储库类以“获取一堆 X 业务对象”的存储库模式。例如,假设我有一个名为 的业务对象Article
,我可以有一个ArticleRepository
,我的“文章列表页面”将调用该存储库并为我获取Article
. 这很好,但对我来说在 DAL 上可能有点矫枉过正。有没有做其他事情的名字,比如static GetAll()
在我的业务对象上拥有一个方法?所以不是:
var repo = new ArticleRepository();
IEnumerable<Article> articles = repo.GetAll();
我在想这样简单的事情:
IEnumerable<Article> articles = Article.GetAll();
其中的Article
类既是我的业务对象,具有相关的属性甚至是辅助方法,也有一个static GetAll()
方法。这种方法有名称吗?创建这个精简的伪存储库是一个坏主意吗?
我问这一切是因为简单地说,我将有很多存储库类来执行此操作,因为我有很多业务对象,所有这些都具有从系统中获取它们的唯一查询。