数据访问层设计

Posted

技术标签:

【中文标题】数据访问层设计【英文标题】:Data access layer design 【发布时间】:2012-06-06 05:08:16 【问题描述】:

我有一个 Web 应用程序和一个控制台应用程序访问数据库。 db 有 2 个表(A,B),其中一个(A)特定于 Web 应用程序。在编写数据访问层时,最好的方法是什么?从技术上讲,数据访问层应该提供对所有可访问数据的访问。这样做时,如果我们有单个访问层,则与 A 交互的方法会暴露给控制台应用程序。在同一个数据库中为 2 个表创建 2 个访问层是否有意义?有什么好的方法吗?

【问题讨论】:

【参考方案1】:

我个人会将数据访问层单独放在一个类和 1 个(或尽可能多的中间类)中,以保存将由数据访问层进行对话/填充的业务实体。然后,控制台和 Web 应用程序与业务实体层对话。

例如:

数据访问层

持有ALL关于数据库、执行存储过程的方法、函数和查询的连接信息。本课程将与Table A and Table B

交谈

控制台 1 实体

这将包含使用数据访问层实例来检索适当信息的方法/属性。 IE。

public List<string> GetTableAContents() 
   var retVal = Data.RunStoredProcedure("sp_Table1Contents);
   return retVal;

控制台应用程序

Console1Entity ce = new ConsoleEntity();
var contents = ce.GetTableAContents();

然后,您将根据与该应用程序相关的内容创建一个新的 WebApplication 实体类。这将提供一个三层架构。

【讨论】:

以上是关于数据访问层设计的主要内容,如果未能解决你的问题,请参考以下文章

如何适当地设计数据访问层?

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

软考 系统架构设计师论文范文③ 论数据访问层设计技术及其应用

设计数据访问层

DDD中的数据访问层设计

PetShop数据访问层之数据库访问设计 - 《解剖PetShop》系列之二