使用后
using (TestDatabaseEntitites ctx = new TestDatabaseEntitites())
{
....
}
我想在using
语句之后关闭所有sql连接,我认为这是预期的。但它不会发生。即使在ctx.Dispose()
之后。
我可以关闭所有打开连接的唯一方法是clearAllPools方法。 难道我做错了什么? 感谢。
答案 0 :(得分:1)
.Net中的连接池连接按设计在幕后保持打开状态。这样做的原因是打开与数据库的连接通常是非常昂贵的操作,几乎需要几秒钟。
出于这个原因,关闭连接只会重置它,以便将来Open
只传递旧的重置连接,而不是打开一个新连接。
答案 1 :(得分:0)
这个答案来自here
DbContext是一个非常轻量级的对象。
DbContext是否保持活动状态或者在调用之前实例化它并不重要,因为实际的数据库连接仅在SubmitChanges或枚举查询时打开(在这种情况下,它在枚举结束时关闭)。 / p>
在您的具体情况下。这根本不重要。