Voici la configuration de base. Sur un site Web ASP.Net, quelques pages affichent des rapports à partir de données provenant d'une base de données. Toutes les données proviennent de procédures stockées auxquelles on accède en utilisant Linq to Sql. Ces pages peuvent avoir un trafic très élevé à des moments différents. Nous utilisons ASP.Net avec le modèle MVP et Unity for IoC (bien que cette question soit la même quel que soit le conteneur.) Chaque Presenter est injecté avec un IDataRepository qui est injecté avec un IDataAccess qui informe un Linq to Sql DataContext sous la hotte.Unité avec un Linq to Sql DataContext. RegisterType or RegisterInstance
La question est, lors du câblage du conteneur, devrions-nous utiliser RegisterInstance (singleton) pour IDataAccess, ou devrions-nous utiliser RegisterType. Je suppose que la question se résume à ceci: Comment Unity gère-t-il Dispose() (lors de l'utilisation de RegisterType, disposera-t-il correctement de ma classe DataAccess qui dispose de DataContext) et combien cela coûte-t-il de créer un DataContext. D'un autre côté, quelle est la réduction d'avoir des threads (potentiellement) multiples frappant le même DataContext?
Une note finale, pas sûr si cela est pertinent, le DataContext est utilisé strictement pour lire les données dans ce cas, il ne fait jamais d'écritures.
Exactement ce que j'avais besoin de savoir. Merci. – BFree