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 в качестве закрытого члена в вашем классе репозитория действительно может вызвать «проблемы с масштабируемостью», как предлагается в первой статье?