Armazenamento em cache do DbContext

Eu sei que o cache do DbContext não é uma boa ideia. Mas eu gostaria de fazê-lo bem. O que você acha dessa maneira?

public class Context : DbContext
{
    private Context()
    {
    }

    private static WeakReference<Context> _cachedContext;

    public Context Instance
    {
        get
        {
            Context context;
            if (!_cachedContext.TryGetTarget(out context))
            {
                context = new Context();
                _cachedContext.SetTarget(context);
            }
            return context;
        }
    }
}

Este código está planejado para ser usado sem a identificação de IDisposable.Dispose no lado do cliente. Que problemas isso pode causar, exceto o padrão (anti) singleton? Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion