public DbConnectionPool(DataType dataType, Func <DbConnection> connectionFactory) { #region Test connectionFactory //情况1:() => new SqlConnection(...) //情况2:() => conn DbConnection conn1 = null; DbConnection conn2 = null; try { conn1 = connectionFactory(); //测试 conn conn2 = connectionFactory(); TestConnection = conn1; //赋值创建 Command,兼容 Mono.Data.Sqlite IsSingletonConnection = conn1 == conn2; } catch { } finally { if (conn1 != conn2) { if (conn1?.State == ConnectionState.Open) { try { conn1?.Close(); } catch { } } if (conn2?.State == ConnectionState.Open) { try { conn2?.Close(); } catch { } } } } #endregion _dataType = dataType; _connectionFactory = connectionFactory; Policy = new DbConnectionPoolPolicy(this); }
public DbConnectionPool(DataType dataType, Func <DbConnection> connectionFactory) { _dataType = dataType; _connectionFactory = connectionFactory; Policy = new DbConnectionPoolPolicy(this); }