public static IDbConnection OpenCachedCx(LINQPad.Repository r) { lock (_cachedCxLock) { if (_cachedCx != null) { bool flag2 = (_cachedRepos == null) || !_cachedRepos.IsEquivalent(r); if (!((_cachedCx.State != ConnectionState.Open) || flag2)) { return _cachedCx; } if ((_cachedCx.State != ConnectionState.Closed) || flag2) { try { _cachedCx.Dispose(); } catch { } _cachedCx = null; } } if (_cachedCx == null) { _cachedCx = r.Open(true); _cachedRepos = r; } else { _cachedCx.Open(); } return _cachedCx; } }