estrutura de entidade c #: uso correto da classe DBContext dentro da sua classe de repositório

Eu costumava implementar minhas classes de repositório, como você pode ver abaixo

public Class MyRepository
{
      private MyDbContext _context; 

      public MyRepository(MyDbContext context)
      {
          _context = context;
      }

      public Entity GetEntity(Guid id)
      {
          return _context.Entities.Find(id);
      }
}

No entanto, li recentemente este artigo que diz que é uma prática ruim ter o contexto de dados como um membro privado em seu repositório:http://devproconnections.com/development/solving-net-scalability-problem

Agora, teoricamente, o artigo está correto: como o DbContext implementa IDisposable, a implementação mais correta seria a seguinte.

public Class MyRepository
{
      public Entity  GetEntity(Guid id)
      {
          using (MyDbContext context = new MyDBContext())
          {
              return context.Entities.Find(id);
          }
      }
}

No entanto, de acordo com este outro artigo, o descarte do DbContext não seria essencial:http://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.html

Qual dos dois artigos está certo? Estou bastante confuso. Ter o DbContext como membro privado na sua classe de repositório pode realmente causar "problemas de escalabilidade", como sugere o primeiro artigo?

questionAnswers(10)

yourAnswerToTheQuestion