gpt4 book ai didi

c# - 使用 Enterprise Library 5.0 数据访问问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:27 24 4
gpt4 key购买 nike

这可能是一个非常简单的问题,但或多或​​少,我想问的是,我可以全神贯注地了解数据访问 block 如何打开和关闭连接。

首先,我已经使用 Enterprise Library 之类的东西大约 10 年了,并且在 Entities 等之间来回切换。

无论如何,当我使用数据库类的 CreateDatabase() 函数时,它是立即打开到数据库的连接,还是在我实际使用 ExecuteReader 之类的东西进行调用时打开连接?

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

此外,如果 CreateDatabase 立即打开连接,打开和关闭连接的最佳做法是什么?有一小段代码示例要分享吗?

最佳答案

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

当然,总有异常(exception)。对于 ExecuteReader,立即关闭连接没有意义。 ExecuteReader 设置为在处理 DbDataReader 时关闭连接,这就是您使用 ExecuteReader 看到此模式的原因:

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

当退出 using block 时,DbDataReader 被释放并关闭连接。

Enterprise Library Developer's Guide也略微谈到了这个主题。

因此,简而言之,您通常不必处理连接管理。图书馆将这些工作抽象出来并为您管理。

关于c# - 使用 Enterprise Library 5.0 数据访问问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com