Example #1
0
            void IDisposable.Dispose()
            {
                if (_contextPool != null)
                {
                    if (!_contextPool.Return(Context))
                    {
                        ((IDbContextPoolable)Context).SetPool(null);
                        Context.Dispose();
                    }

                    _contextPool = null;
                    Context      = null;
                }
            }
            async ValueTask IAsyncDisposable.DisposeAsync()
            {
                if (_contextPool != null)
                {
                    if (!_contextPool.Return(Context))
                    {
                        ((IDbContextPoolable)Context).SetPool(null);
                        await Context.DisposeAsync().ConfigureAwait(false);
                    }

                    _contextPool = null;
                    Context      = null;
                }
            }
Example #3
0
            /// <summary>
            ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
            ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
            ///     any release. You should only use it directly in your code with extreme caution and knowing that
            ///     doing so can result in application failures when updating to a new Entity Framework Core release.
            /// </summary>
            public Lease([NotNull] DbContextPool <TContext> contextPool)
            {
                _contextPool = contextPool;

                Context = _contextPool.Rent();
            }