3

好的,正如标题所示,我正在为我目前正在研究的调查框架设计一个数据访问层。

我们都熟悉分层架构的概念,我们尝试以一种方式实现层之间的分离,即表示层可以连接到任何业务层,就像业务层可以连接到任何数据访问层一样,无论其实现如何只要它保持相同的接口(相同的方法)。

现在,在使用 SQL Server 构建数据库之后,我正在使用 DataSet (*.xsd) 文件构建 DAL,并在该文件中为每个表适配器和数据库中的相应存储过程创建方法。

在 Visual Studio 中使用数据集可视化设计器工作了一段时间后,我注意到我的目标是提供一个非常灵活的 API,它以方法的形式为用户提供所有可能的查询。例如,我想为用户提供使用任何可能的过滤器或不使用过滤器对表执行检索操作的方法,我还希望用户能够使用她/他想要作为过滤器的任何列删除行,同时更新使用他想要的任何列作为过滤器的所有/单个字段。

我主要完成此任务的方法是为每个可能的查询创建一个方法,无论它是 DDL 还是 DML。现在,当我认为我可能在某个方法中犯了错误,或者我想检查这些方法以确保在快速打字时没有遗漏任何东西时,这似乎很痛苦,因为我最终得到了很多方法。

所以,我的问题是:是否有另一种方法来设计数据访问层,以便可以轻松地重构方法并创建它们?

我希望我没有详细说明,但我想把你放在图片中,这样我才能得到正确的答案,提前谢谢

4

1 回答 1

2

好吧,您可以使用 ORM 工具来提供良好的数据访问层。我的意思是因为使用 ORM 工具,您将支持大多数流行的数据库,如 SQL Server、Oracle、MySQL、PostgreSql 等。

根据您使用的 wichi ORM 工具,您不必编写 SQL 语句,这意味着您对查询错误不太敏感。

我建议您检查一个名为NHibernate的工具。使用此 ORM,您可以使用Linq另一个(更具体用于 NHibernate)查询 QueryOver来编写查询。您将有很多灵活性来编写动态查询。使用 ORM 工具,您可以实现存储库模式并创建方法和查询以获得有效的数据访问。

因此,当您使用这样的东西时,您将获得 Visual Studio 的好处,例如 Refecting,因为Linq, 和QueryOver是强类型的。但是你也会有 HQL,它就像 Sql Statment。

查看这篇文章:为什么我不使用数据集

于 2012-10-10T11:28:16.820 回答