【问题标题】:Is there any alternative that does not close a connection to ExecuteStoreCommand是否有任何替代方法不会关闭与 ExecuteStoreCommand 的连接
【发布时间】:2011-04-26 02:44:25
【问题描述】:

我们正在为每个请求概念讨论一个 ObjectContext。 (Web应用程序) 我们不会关闭 Application_BeginRequest 和 Application_EndRequest 之间的连接。 我们在请求期间有一个 ObjectContext。 我们在请求期间打开它并且不关闭。

Entity Framework 中有一个 ExecuteStoreCommand,但这对性能有点危险。因为当我们使用它时(我认为)它会关闭连接。当我们再次打开连接后使用 ObjectContext 时(这是性能问题?)

那么 ExecuteStoreCommand 有什么替代品吗?或者我疯了 :)

【问题讨论】:

    标签: performance ado.net entity-framework-4 database-connection


    【解决方案1】:

    如果您正确使用connection pooling,“关闭”和“打开”连接不会对性能产生任何实际影响。连接池包含几个打开的连接,这些连接被多个后续操作重用。在大多数情况下,打开仅意味着“从池中获取连接”,关闭意味着“将连接返回到池”。如果池中没有可用的连接以及限制并发使用的连接数,则连接池将处理打开新连接。连接池是按连接字符串 + 用户身份定义的。

    ExceuteStoreCommand 仅在命令开始执行时没有打开连接时才关闭连接。这意味着如果您使用自己的连接传递给上下文,它不会关闭它。

    【讨论】:

    • 如果我想使用 ExecuteStoreCommand 设置我的下一个命令未提交读取? ExecuteStoreCommand("SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;")
    猜你喜欢
    • 2011-09-09
    • 2014-06-20
    • 2012-10-05
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多