我正在开发一个项目,其中包含一个包含数据的系统,我正在考虑使用数据访问方法来获取数据,以便将其传递给我在演示方面的组件。我认为这是一个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()
方法。这种方法有名字吗?创建这个精简的伪存储库是不是一个坏主意?
我问这一切,因为简单地说,我将有很多存储库类来执行此操作,因为我有许多业务对象,所有业务对象都有唯一的查询来从系统中获取它们。
答案 0 :(得分:0)
不知道您的架构名称,但IMHO DAL应该处理持久性,从而直接处理DB API。
根据我的经验,没有理由认为一些好的做法是矫枉过正:) 使用EF的通用存储库非常简单,将来会让你微笑。