public static IDataContext CreateDataContext(bool useTransaction = false) { lock (_lock) { if (_createDataContext.IsNull()) { throw new NullReferenceException("DataContextFactory.CreateDataContext is not properly configured."); } if (_currentContext.IsNull()) { return(_createDataContext(useTransaction)); } IDataContext context; _currentContext.TryGetTarget(out context); if (context.IsNotNull() && !context.IsDisposed) { throw new InvalidOperationException("CurrentContext has not been disposed."); } return(_createDataContext(useTransaction)); } }
DbContext RetrieveValidContext() { if (IsDisposed && _disposeDbContext) { throw new ObjectDisposedException("DbContext has been disposed."); } if (IsDisposed) { throw new ObjectDisposedException("DataContext has been disposed."); } if (_context.IsNull()) { throw new NullReferenceException("DbContext is null."); } DbContext dbContext; _context.TryGetTarget(out dbContext); if (dbContext.IsNull()) { throw new NullReferenceException("DbContext is null."); } return(dbContext); }