Mon application utilise une instance de contexte qui existe pour la durée de vie de l'application. J'utilise Entity Framework pour lire et écrire toutes les données dans la base de données. Après avoir ajouté des objets, je veux qu'ils soient nettoyés par le garbage collector afin qu'ils ne restent pas en mémoire. J'ai essayé ce qui suit:context.detach - pour la récupération de place
While context.BatchProgresses.Count > 0
context.Detach(context.BatchProgresses.First())
End While
mais cela se déroule dans une boucle infinie. Vous ne devriez pas Context.Detach()
retirer des objets de Context.BatchProgresses
?
Les contextes singleton sont une * très mauvaise idée * et ne se termineront que dans la misère. Un contexte est une unité de travail. Votre unité de travail n'est pas "toute la durée de vie de mon application". –
J'apprécie le conseil. En fin de compte, j'ai fini par répartir la tâche dans plusieurs contextes. J'ai d'abord évité cette stratégie parce que je m'inquiétais des implications de la création et de la destruction de contextes dans une boucle de minuterie, mais il se trouve qu'il y a peu ou pas d'impact sur les performances. – Terry