C # Entity Framework: правильное использование класса DBContext внутри вашего класса репозитория

Я использовал для реализации своих классов репозитория, как вы можете видеть ниже

public Class MyRepository
{
      private MyDbContext _context; 

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

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

Однако недавно я прочитал эту статью, в которой говорится, что не рекомендуется использовать контекст данных в качестве частного члена в вашем хранилище:http://devproconnections.com/development/solving-net-scalability-problem

Теперь теоретически статья верна: поскольку DbContext реализует IDisposable, наиболее правильной будет следующая реализация.

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

Однако, согласно этой другой статье, избавление от DbContext было бы несущественным:http://blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.html

Какая из двух статей верна? Я в замешательстве. Наличие DbContext в качестве закрытого члена в вашем классе репозитория действительно может вызвать «проблемы с масштабируемостью», как предлагается в первой статье?

Ответы на вопрос(10)

Ваш ответ на вопрос