我正在调试Jaroslaw Kowalski提供程序包装器。在调试它时,我发现实体框架在每次查询后都会关闭连接。在与数据库的每次交互中,在应用程序的生命周期中,都会打开数据库连接,并在执行查询后关闭连接
我的问题是:
困扰我的是Entity Framework本身正在关闭连接。所以我对连接池有点犹豫不决,否则在特殊情况下可能会出现问题。
答案 0 :(得分:4)
供参考:
EF仅关闭它打开的连接。
因此,如果您手动执行此类操作:
((ctx.Connection as EntityConnection).StoreConnection as SqlConnection).Open();
子后续查询和SaveChanges()
不应该关闭该连接。
希望这有帮助
亚历
答案 1 :(得分:2)
默认connectionpool = 1连接。所以不要担心。
这里的整个想法是我们有1个编程模型(断开连接)和那个配置&调整是外在的。
答案 2 :(得分:0)
在.Net 4中,引用:Managing Connections and Transactions
管理连接时需要考虑以下注意事项:
如果在操作之前尚未打开连接,则对象上下文将打开该连接。如果对象上下文在操作期间打开连接,则它将始终在操作完成时关闭连接。
如果手动打开连接,则对象上下文不会将其关闭。调用Close或Dispose将关闭连接。
如果对象上下文创建了连接,则在处理上下文时将始终处理连接。
在长时间运行的对象上下文中,必须确保在不再需要上下文时处置它。
如果为对象上下文提供了一个开放的EntityConnection,则必须确保它已被丢弃。