c # entity framework: korrekte Verwendung der DBContext-Klasse in Ihrer Repository-Klasse
Ich habe meine Repository-Klassen implementiert, wie Sie unten sehen können
public Class MyRepository
{
private MyDbContext _context;
public MyRepository(MyDbContext context)
{
_context = context;
}
public Entity GetEntity(Guid id)
{
return _context.Entities.Find(id);
}
}
Ich habe jedoch kürzlich diesen Artikel gelesen, der besagt, dass es eine schlechte Praxis ist, Datenkontext als privates Mitglied in Ihrem Repository zu haben:http: //devproconnections.com/development/solving-net-scalability-proble
Nun, theoretisch ist der Artikel richtig: Da DbContext IDisposable implementiert, ist die korrekteste Implementierung die folgende.
public Class MyRepository
{
public Entity GetEntity(Guid id)
{
using (MyDbContext context = new MyDBContext())
{
return context.Entities.Find(id);
}
}
}
Das Entsorgen von DbContext wäre laut diesem anderen Artikel jedoch nicht unbedingt erforderlich:http: //blog.jongallant.com/2012/10/do-i-have-to-call-dispose-on-dbcontext.htm
Welcher der beiden Artikel ist richtig? Ich bin ziemlich verwirrt. DbContext als privates Mitglied in Ihrer Repository-Klasse zu haben, kann wirklich "Skalierbarkeitsprobleme" verursachen, wie der erste Artikel nahe leg