在ASP.NET类中处理事物

Arr*_*row 0 .net c# ado.net

我有一个使用C#类文件的站点,在文件的顶部,我有:

JTSEntities database = new JTSEntities(); (一个ADO.NET的东西).

我把它放在顶部,因为我不想一遍又一遍地写同样的东西.

但它提出了一个问题......因为它在那里是最重要的,它将如何处理,何时 - 以及 - 当用户关闭页面时如何处理它(或我是否需要)?

Eri*_* J. 6

保持包装数据库连接的时间超过需要的时间是不好的做法.

最好的做法是在当前操作不再需要时释放数据库连接(例如填充初始值等),例如类似

using (JTSEntities database = new JTSEntities())
{
    // Use database
}
Run Code Online (Sandbox Code Playgroud)

如果它实现了IDisposable.

如果由于某种原因你必须在页面持续时间内保持它活着,请确保调用适当的方法来释放页面关闭事件处理程序中的资源(.Close(),. Dispose()等).