我们正在讨论每个请求概念的一个ObjectContext。 (Web应用程序) 我们不关闭Application_BeginRequest和Application_EndRequest之间的连接。 在请求期间,我们有一个ObjectContext。 我们打开它,在请求期间不要关闭。
实体框架中有一个ExecuteStoreCommand,但这对性能有点危险。因为当我们使用它时(我认为)它关闭了一个连接。当我们再次打开连接后使用ObjectContext时(这是性能问题?)
那么ExecuteStoreCommand还有其他选择,还是我疯了:)
答案 0 :(得分:0)
如果正确使用connection pooling,“结束”和“打开”连接不会对性能产生任何实际影响。连接池包含多个打开的连接,这些连接由多个后续操作重用。在大多数情况下打开仅意味着“从池中获取连接”,关闭意味着“将连接返回到池”。如果池中没有可用的连接池,则将处理打开新连接以及限制并发使用的连接数。连接池是根据连接字符串+用户标识定义的。
仅当命令开始执行时未打开任何连接时, ExceuteStoreCommand
才会关闭连接。这意味着如果您使用自己的连接传递给上下文,它将不会关闭它。