Sea*_*ean 1 c# asp.net enterprise-library asp.net-mvc-3
这可能是一个非常简单的问题,但或多或少,我要求这样,我可以围绕数据访问块如何打开和关闭连接.
首先,我使用了类似企业库的东西大约10年,并在实体等之间来回切换.
无论如何,当我使用Database类的CreateDatabase()函数时,这是否会立即打开与数据库的连接,还是在我使用ExecuteReader之类的实际调用时打开连接?
它如何处理关闭连接?在DAL中使用连接后,我是否必须明确调用连接?在完成Reader等操作后,企业库如何确保连接已关闭?
此外,打开和关闭连接的最佳做法是什么?如果CreateDatabase立即打开连接?有一小部分代码可以分享吗?
CreateDatabase()不会打开与数据库的连接.各个命令通常处理连接的打开和关闭(例如ExecuteNonQuery).
当然总有一个例外.对于ExecuteReader,立即关闭连接是没有意义的.设置ExecuteReader以在处理DbDataReader时关闭连接,这就是使用ExecuteReader看到此模式的原因:
using (IDataReader reader = db.ExecuteReader(cmd))
{
// Process results
}
Run Code Online (Sandbox Code Playgroud)
当退出使用块时,DbDataReader被丢弃并且连接被关闭.
该企业库开发人员指南关于这个问题倒是一点为好.
因此,简而言之,您通常不必处理连接管理.图书馆将这项工作抽象出来并为您管理.
| 归档时间: |
|
| 查看次数: |
2727 次 |
| 最近记录: |