我有一个MVC应用程序,使用StructureMap for IoC。
在应用程序中,通过实体框架,数据访问率为95%;但是有一些原始的ADO.NET存储库使用了IDbConnection
实例。
目前我将I IDbConnection
注册到IoC容器......
init.For<IDbConnection>()
.HybridHttpOrThreadLocalScoped()
.Use(() => this._connectionFactory.CreateConnection(config.ConnectionString));
init.Forward<IDbConnection, DbConnection>();
...并在必要时将IDbConnection
注入原始ADO.NET存储库。
但是,目前我_connectionFactory.CreateConnection()
返回 OPEN 连接,目的是允许StructureMap在请求结束时关闭连接。
这样做是明智的吗?
在请求的整个生命周期中共享单个开放连接,或者仅在必要时打开/关闭并保持连接短暂是否更好?