当我创建多个具有不同连接的DbContext时,会创建到数据库的额外连接。我的样本可能只有两个连接吗?
var vOracleConnection1 = new OracleConnection(vConnectionString);
vOracleConnection1.Open();
var vDbContext1 = new DbContext(existingConnection : vOracleConnection1
,contextOwnsConnection : false
);
vUser1 = vDbContext1.users.FirstOrDefault(vUsr => vUsr.Code = 123);
var vOracleConnection2 = new OracleConnection(vConnectionString);
vOracleConnection2.Open();
var vDbContext2 = new DbContext(existingConnection : vOracleConnection2
,contextOwnsConnection : false
);
vUser2 = vDbContext2.users.FirstOrDefault(vUsr=> vUsr.Code = 456);
使用1 DbContext连接到Oracle我有1个连接:
程序机OSUser服务器SID状态终端类型SQL_ID 1- LORRFR服务器\ WKS-LORRFR lorrfr专用361非活动WKS-LORRFR用户
使用2 DbContexts连接到Oracle -我有7个连接:
程序机OSUser服务器SID状态终端类型SQL_ID 1- LORRFR服务器\ WKS-LORRFR lorrfr专用18非活动WKS-LORRFR用户 2- LORRFR服务器\ WKS-LORRFR lorrfr专用24非活动WKS-LORRFR用户 3- LORRFR服务器\ WKS-LORRFR lorrfr专用25非活动WKS-LORRFR用户 4- LORRFR服务器\ WKS-LORRFR lorrfr专用367非活动WKS-LORRFR用户 5- LORRFR服务器\ WKS-LORRFR lorrfr专用361非活动WKS-LORRFR用户 6- LORRFR服务器\ WKS-LORRFR lorrfr专用366非活动WKS-LORRFR用户 7- LORRFR服务器\ WKS-LORRFR lorrfr专用358非活动WKS-LORRFR用户
几次之后,我们回到了两个连接:
程序机OSUser服务器SID状态终端类型SQL_ID 1- LORRFR服务器\ WKS-LORRFR lorrfr专用361非活动WKS-LORRFR用户 2- LORRFR服务器\ WKS-LORRFR lorrfr专用18非活动WKS-LORRFR用户
发布于 2016-08-30 18:09:02
这可能与连接池有关。
您可以在( 01/win.101/b10117/features001.htm )中指定几个参数,但在您的示例中,Pooling=false
应该足够了。
顺便说一下,关闭连接池会降低性能。
https://stackoverflow.com/questions/39234075
复制相似问题