EntityFramework创建130多个连接

时间:2015-02-06 19:02:46

标签: c# sql-server entity-framework sql-server-2008-r2 sqlconnection

根据MSDN,实体框架应该在特定操作(例如SaveChanges())之后关闭其连接。

亚马逊在我的SQL Server实例(140个连接)中关于太多连接咆哮。 sp_who2中的100个连接显示ProgramName为" EntityFramework"。

EF可以创建所有这些连接吗?是否缺少应用程序级别清理?启动定期垃圾收集有助于清理它们吗?

3 个答案:

答案 0 :(得分:4)

使用'使用'块会有所帮助。请记住,ADO.net连接是“汇集”的。如果在一定时间内使用相同的连接字符串,则将重用池化连接。它应该防止堆积所有这些连接。

答案 1 :(得分:1)

一个起点是确保不要让上下文实例悬空。将它们包装在使用块中可能会有所帮助。

答案 2 :(得分:1)

看起来Ninject关闭数据库上下文存在问题...

http://bobcravens.com/2010/11/using-ninject-to-manage-critical-resources/