我正在使用EF6和Code First,并在每次查询之前和之后查看具有登录/注销的SQL事件探查器日志。 EF不应该保持连接对服务器开放,并重新使用它,而不是关闭并重新打开每个查询?我正在使用Ninject按HTTP请求实现我的EF上下文。
答案 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”属性可以帮助您。