我在这里看到了一个关于Linq-To-Sql的有趣链接: 更高效的数据库访问
看着我自己的代码,我意识到我也没有处理过DataClassesDataContext.这是一个问题吗?我不知道,但我搜索了我的代码并添加了using (DataClassesDataContext db = new DataClassesDataContext())整个代码.
现在,这是有趣的事情.我们在代码中记录几乎每个页面访问和事务.所以我现在有一块看起来像这样的代码:
protected WriteLog(String activity)
{
using (DataClassesDataContext db = new DataClassesDataContext())
{
... Do db write with Linq
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个使用非常频繁的功能,在任何时候至少有50个呼叫/秒.所以在我假设我们遭遇潜在的"泄漏"之前,这是一个问题.但现在我们似乎不会泄漏数据库资源,而是我们将花费大量时间来打开和关闭数据库连接.这不可能是对的,可以吗?上面的代码现在是否为我们的用户打开和关闭每个日志条目的数据库连接,增加了更多的开销,而不仅仅是让DataClassesDataContext在将来被垃圾收集?