ASP.Net中的数据访问层:我在哪里创建连接?

时间:2010-12-31 17:34:47

标签: c# asp.net data-access-layer

如果我想创建一个3层ASP.Net应用程序(表示层,业务层,数据访问层),那么创建Connection对象的最佳位置在哪里?

到目前为止,我在Presentation Layer中使用了一个帮助器类,从每个页面上的web.config中的ConnectionString创建一个IDbCommand,并将其传递给DAL类/方法。

现在我不太确定,如果这个部分也不应该以某种方式包含在DAL中,因为它显然是数据访问的一部分。 DAL是一个单独编译的项目,因此我无法访问web.config并且无法访问连接字符串(对吗?)。

这里的最佳做法是什么?

2 个答案:

答案 0 :(得分:4)

简短回答:

表示对数据库的依赖关系的Connection对象应该在数据访问层中创建(并且只知道 )。

答案很长:

当你说“3-Tier”时,你的意思是“等级”还是指“层”?前者表明每层之间存在硬边界,例如服务层。后者只是单个应用程序上下文中的逻辑分离。另外,定义DAL是以“单独编译的项目”的方式?它可以访问运行代码的任何应用程序上下文的配置文件。如果它是它自己的层,它将有某种服务或具有配置的东西。如果它只是一个图层,它可以访问应用程序的主配置。

理想情况下,与数据库绑定和/或依赖于数据库的任何内容都应仅存在于DAL中。应用程序域的其余部分不必担心数据库。

答案 1 :(得分:0)

我认为应该在服务层,即满足用例的服务层。知道工作单元的对象应该是创建连接,设置事务级别,完成用例以及清理所需内容的对象。

它不应该在表示层中,因为如果更改表示技术,则必须重做连接创建。