Prenant mon premier coup que l'utilisation de la méthode OnSelecting de LinqDataSource pour que je puisse spécifier une requête plus complexe, j'ai écrit ceci:Dois-je faire confiance à LinqDataSource pour nettoyer correctement?
protected void CategoriesDataSource_OnSelecting(object sender, LinqDataSourceSelectEventArgs e)
{
using (DataLayerDataContext db = new DataLayerDataContext())
{
e.Result = (from feed in db.Feeds
where feed.FeedName.StartsWith("Google")
select feed.MainCategory).Distinct();
}
}
Le problème, bien sûr, est que la clause en utilisant disposera le DataLayerDataContext. La «solution» est de l'écrire sans elle, mais j'ai peur que le contexte ne soit pas éliminé en temps opportun, qu'il laisse un tas de connexions ouvertes jusqu'à ce que la collecte des données soit effectuée, et ainsi de suite.
Je ne suis pas un expert dans ce domaine, donc des commentaires sur si c'est un vrai problème, ou suis-je inquiet pour rien?
Le problème avec ceci est cependant que cela ne fonctionne toujours pas avec les propriétés de chargement paresseux. Les y accéder après que le contexte soit éliminé lancera une exception 'ObjectDisposedException'. – Steven
Exactement. J'ai modifié ma réponse. –