J'ai ce code.Comment faire le nettoyage?
Une classe de base qui crée une nouvelle instance du contexte.
public class Base
{
private Entities context;
public Base()
{
context = new Entities();
}
}
Et que les classes qui héritent de cette classe.
public class SomeService : Base
{
public Gallery Get(int id)
{
return context.GallerySet.FirstOrDefault(g => g.id == id);
}
}
La question est, comment prendre soin de disposer de l'objet de contexte? Je pensais à un destructeur dans les classes de base, où j'appellerais simplement la méthode de disposition de l'objet de contexte.
~Base()
{
context.Dispose();
}
Cela serait-il suffisant? Ou existe-t-il un autre moyen de prendre soin de l'objet contextuel?
Il est logique que vous avez dit au sujet IDisposable.But l'approche ci-dessus, je voulais me débarrasser d'appeler à l'aide dans chaque méthode comme celui-ci à l'aide (entités contexte = nouvelles entités()) { .... } La classe SomeService aura beaucoup de méthodes courtes utilisant l'objet context. Et la répétition de l'approche utilisant dans chaque méthode est contre le principe SOLID. – user137348
Vous aurez toujours besoin d'utiliser des instructions quelque part. Vous n'avez pas besoin de l'instruction using dans chaque méthode SomeService - le contexte pourrait être passé dans la méthode, par exemple. –
D'accord avec @Jon. Jetez un oeil à [cet article] [1]. Notez que le titre est Mise en œuvre Finalize and Dispose pour nettoyer ** Ressources non gérées **, même si l'article est classé sous Common Design Patterns (modèle jetable) [1]: http://msdn.microsoft.com/ en-us/library/b1yfkh5e% 28VS.71% 29.aspx –