Exemplo n.º 1
0
 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;
     }
 }