【发布时间】:2015-02-19 03:39:54
【问题描述】:
我的 DBA 说打开的连接太多,他认为是我在 .net 中的代码使它们保持打开状态。
我首先使用 LINQ 查询和 EF 代码。
示例方法:
public List<Stuff> GetStuff()
{
var db = new DBContext();
var results = db.stuff.toList();
return results;
}
完成后是否需要处理 db var?我的理解是我不需要在 EF 和 LINQ 中。请向我指出有关在代码中管理连接或 LINQ/EF 和数据库连接的最佳实践的 Microsoft 文档
更新:
我加了
db.Connection.Close();
db.Dispose();
执行完这两行后,我仍然在 SQL 中看到打开的连接。强制关闭时它不会关闭的原因是什么?
【问题讨论】:
-
如果是
IDisposable,最好将其包装在using语句中。 -
我回到我的所有代码并将其包装在 using 语句中。然后我意识到我在做延迟加载。这不适用于延迟加载。所以我回去并恢复了所有代码并依靠 DataContext 来管理连接
标签: c# entity-framework database-connection idisposable