我希望我的数据访问层构建得非常模块化。
因此,我有数据检索方法,有时直接从业务层调用,有时被其他数据检索方法调用来创建对象依赖关系。在DAL中处理数据库连接的最佳方式 - 创建或传递?
在DAL中处理数据库连接的最佳方法是什么?
a)在每个方法中创建一个新的连接,然后进行处理。
好:易于编写和使用。
不好:许多连接正在打开和关闭。 (性能?)
b)将连接作为(可选)参数传递。
好的:我可以重复使用一个打开的连接来执行多个命令。
不好:我必须跟踪连接的所有权(谁必须关闭它?),并且不能使用非常整洁的“using”语句。
c)还有别的吗? (连接可能是单身人士吗?)
这是我第一次写真正的DAL,所以我真的可以使用一些经验丰富的人帮忙。
编辑:它似乎很重要,它是一个ASP.Net网站项目。
可能是切线,但FWIW,我宁愿使用nhibernate,让它掌握所有这一切。即只使用nhibernate提供的会话对象。 – Biswanath 2011-01-26 21:16:46