gpt4 book ai didi

sql-server-2005 - Entity Framework 4 未关闭 sql server 2005 分析器中的连接

转载 作者:行者123 更新时间:2023-12-02 05:07:45 27 4
gpt4 key购买 nike

我第一次在 ASP.net 应用程序中使用 Entity Framework 4。我想确保在离开 using 语句后关闭数据库连接,但是,在 SQL Server 2005 事件探查器中,我在离开 using 时看不到连接注销,只有在进入它时看到登录,

例如,我从一个空白的 asp.net 页面开始,在 Page_Load 中,我尝试使用这个简单的代码(页面中绝对没有其他内容):

using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
}

在分析器中,我看到了审计登录,但没有看到离开“使用”后的注销。所以我尝试使用以下代码显式关闭连接:

using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
model.Connection.Close();
}

同样,我看到了登录,但没有看到注销。奇怪的是,当我在关闭后检查 model.Connection 中的 ConnectionState 属性时,它指示“已关闭”,但在 Sql Server 中却没有。

要查看 SQL Server 中的实际注销,我必须在 VS2010 中按下“停止调试”按钮,当我重新启动 Web 应用程序时,我才看到注销(随后是当我的页面得到处理时的实际登录)。

我开始怀疑 SQL Server 中是否有某些东西可以使连接保持打开状态,即使它在代码中已关闭也是如此。

有什么想法吗?

谢谢

最佳答案

是的,SQL Server 中有一些东西可以保持连接打开:连接池。由于打开和关闭数据库连接是一项昂贵的操作,因此 SQL Server 管理一个连接池,它将分配给连接请求。粗略地说,如果请求连接字符串与池中非事件连接的连接字符串匹配,则 SQL Server 会将连接分配给请求。

关于sql-server-2005 - Entity Framework 4 未关闭 sql server 2005 分析器中的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9114722/

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