使用Enterprise Library 5.0数据访问问题

本文关键字:数据 访问 问题 Enterprise Library 使用 | 更新日期: 2023-09-27 17:58:36

这可能是一个非常简单的问题,但或多或少,我会问这个问题,这样我就可以了解数据访问块是如何打开和关闭连接的。

首先,我已经使用类似企业库的东西大约10年了,并且在实体之间来回切换,等等。

不管怎样,当我使用Database类的CreateDatabase()函数时,这会立即打开到数据库的连接吗?或者,当我实际使用ExecuteReader之类的东西进行调用时,它会打开连接吗?

它是如何处理关闭连接的?在DAL中使用连接后,我是否必须明确要求关闭连接?Enterprise Library如何确保在我使用完Reader等之后关闭连接?

此外,如果CreateDatabase立即打开连接,打开和关闭连接的最佳做法是什么?有一个小的代码样本可以共享吗?

使用Enterprise Library 5.0数据访问问题

CreateDatabase()不会打开到数据库的连接。单个命令通常处理连接的打开和关闭(例如ExecuteNonQuery)。

当然,总有例外。对于ExecuteReader来说,立即关闭连接是没有意义的。ExecuteReader设置为在处理DbDataReader时关闭连接,这就是为什么您使用ExecuteReader:看到此模式

using (IDataReader reader = db.ExecuteReader(cmd))
{
  // Process results
} 

当退出using块时,DbDataReader将被丢弃,并且连接将关闭。

《企业库开发人员指南》也涉及到了这个主题。

因此,简而言之,您通常不必处理连接管理。图书馆把那部分工作抽象出来,代你管理。