在.Net中使用dbContext后,连接保持打开状态

时间:2013-12-21 08:29:58

标签: c# .net dbcontext sqlconnection

使用后

using (TestDatabaseEntitites ctx = new TestDatabaseEntitites())
{
    ....
}

我想在using语句之后关闭所有sql连接,我认为这是预期的。但它不会发生。即使在ctx.Dispose()之后。

我可以关闭所有打开连接的唯一方法是clearAllPools方法。 难道我做错了什么? 感谢。

2 个答案:

答案 0 :(得分:1)

.Net中的连接池连接按设计在幕后保持打开状态。这样做的原因是打开与数据库的连接通常是非常昂贵的操作,几乎需要几秒钟。

出于这个原因,关闭连接只会重置它,以便将来Open只传递旧的重置连接,而不是打开一个新连接。

答案 1 :(得分:0)

这个答案来自here

DbContext是一个非常轻量级的对象。

DbContext是否保持活动状态或者在调用之前实例化它并不重要,因为实际的数据库连接仅在SubmitChanges或枚举查询时打开(在这种情况下,它在枚举结束时关闭)。 / p>

在您的具体情况下。这根本不重要。