实体框架是否应该关闭/重新打开每个查询的连接?

时间:2014-09-08 23:56:12

标签: .net sql-server entity-framework entity-framework-6

我正在使用EF6和Code First,并在每次查询之前和之后查看具有登录/注销的SQL事件探查器日志。 EF不应该保持连接对服务器开放,并重新使用它,而不是关闭并重新打开每个查询?我正在使用Ninject按HTTP请求实现我的EF上下文。

2 个答案:

答案 0 :(得分:1)

根据这篇博客文章,看起来这可能没问题,只是误导,如果你在SQL事件探查器中显示“EventSubClass”列,你可以看到它并没有真正打开新连接,它们被合并。

http://blog.dotsmart.net/2011/03/17/is-sql-server-profiler-showing-connection-pooling-not-working/

答案 1 :(得分:0)

默认情况下,Entity Framework管理与数据库的连接。但是,您可以手动管理Entity Framework应用程序中的连接和事务。

您可以明确地打开:

dbContext.Connection.Open();

就连接池而言,默认连接池大小为100。 连接字符串的“Max Pool Size”属性可以帮助您。