J'ai passé en revue une tonne sur les modèles de référentiel avec Linq au cours des derniers jours. Il y a beaucoup d'informations là-bas mais c'est souvent contradictoire et je suis toujours à la recherche d'une source définitive. L'une des choses dont je ne suis toujours pas sûr est de savoir si le référentiel devrait instancier son propre DataContext et avoir une méthode SubmitChanges, ou si le DataContext devrait être injecté et la soumission traitée de manière externe. J'ai vu les deux modèles, mais pas de véritable commentaire sur le raisonnement.Le référentiel Linq to SQL doit-il implémenter IDisposable?
Quoi qu'il en soit, le modèle suivant est assez commun
class Repository<T>
{
DataContext db = new LinqDataContext();
public IEnumerable<T> GetAll() { ... }
public T GetById() { ... }
... etc
public void SubmitChanges() { ... }
}
Donc, ma question principale est, avec la mise en œuvre ci-dessus, pourquoi ne le dépôt pas besoin de mettre en œuvre IDisposable? J'ai vu littéralement des centaines d'exemples comme ci-dessus, et aucun d'entre eux ne semble déranger le DataContext. N'est-ce pas une fuite de mémoire?
S'agit-il d'un site Web ou d'un client «gros»? –