gpt4 book ai didi

c# - 使用 C#、SQL Server 设计数据访问层

转载 作者:行者123 更新时间:2023-11-30 17:09:36 25 4
gpt4 key购买 nike

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

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

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

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

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

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

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

最佳答案

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

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

我建议您检查一个名为 NHibernate 的工具.使用此 ORM,您可以使用 Linq 和另一个名为 QueryOver 的查询(更具体地针对 NHibernate)编写查询.您将有很大的灵 active 来编写动态查询。使用 ORM 工具,您可以实现 Repository Pattern并创建方法和查询以获取工作数据访问权限。

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

查看这篇文章:Why I don't use DataSets

关于c# - 使用 C#、SQL Server 设计数据访问层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818077/

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