gpt4 book ai didi

c# - 数据访问模式类似于存储库但不完全

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:45 24 4
gpt4 key购买 nike

我正在处理一个项目,其中包含一个保存数据的系统,我正在考虑使用一种数据访问方法来获取数据,以便在事物的呈现方面将其传递给我的组件。我将其视为 N 层架构。这是我的想法:

Presentation layer (WebForms and User Controls)

   \/

Data access layer (this is where my question is)

   \/

Business objects (a C# class for each entity in the system)

   \/

Existing APIs to get data from database (MS SQL-driven)

在我的 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() 方法。这种方法有名称吗?创建这个精简的伪存储库是个坏主意吗?

我问这一切是因为简单地说,我将有很多存储库类来执行此操作,因为我有很多业务对象,所有这些对象都具有从系统中获取它们的唯一查询。

最佳答案

不知道您的架构名称,但恕我直言,DAL 应该负责持久性,从而直接处理 DB API。

根据我的经验,没有理由认为一些好的做法是矫枉过正 :)使用 EF 的通用存储库实现起来非常简单,将来会让您满意。

关于c# - 数据访问模式类似于存储库但不完全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12630418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com