LINQ to SQL - d'où vient votre DataContext de vivre?

Je suis en utilisant LINQ to SQL dans un objet d'accès aux données de la bibliothèque. La bibliothèque est utilisée à la fois sur internet (application web/web service) et non web (service windows) contextes. D'abord, j'ai stocké le DataContext sur l'actuel HttpContext car il m'a permis de gérer la taille relativement petite de l'unité de travail (une requête web) et d'éviter des objets globaux dans une application web. Évidemment, cela ne fonctionne pas dans un Service Windows.

Rick Strahl a un bel article sur la gestion de la DataContext's durée de vie: http://www.west-wind.com/weblog/posts/246222.aspx. Malheureusement, je ne peux pas me décider sur la meilleure approche. Mondial DataContext ne fonctionne pas pour les raisons qu'il mentionne, par Thread DataContext semble complexe et potentiellement plus d'ennuis que cela vaut la peine, et par l'instance de l'objet semble pointilleux - vous perdez une certaine élégance lorsque vous attachez le DataContext utilisé pour créer un DAO pour que DAO de sorte qu'il peut update ou delete plus tard - pour ne pas mentionner, il ya quelque chose de désagréablement poulet-et-eggish au sujet de la relation.

Quelqu'un aurait-il une expérience personnelle que suggère une approche est meilleure que l'autre? Ou mieux encore, quelqu'un aurait-il une quatrième ou de la cinquième approche, je ne vois pas? Où est le meilleur endroit pour stocker et gérer vos DataContext?

InformationsquelleAutor Corbin March | 2008-10-12