Je suis aux prises avec le problème suivant.Utilisation de EntityFramework en C# lors de l'utilisation d'entités pendant une longue période
J'ai une base de données avec une table Jobs, qui contient des informations sur les tâches à effectuer. J'ai suivi l'approche Code First de EF 6.0 et créer une classe POCO appelée Job. Je questionne alors la base de données pour l'emploi:
DbSet<Job> receivedJobs;
using (var context = new MyContext())
{
receivedJobs = (from j in context.Jobs
select j);
}
Avec les reçus mis receivedJobs Je vais donc faire un temps d'optimisation. Si je comprends bien, la durée de vie du contexte ainsi que les ressources que les contrôles de contexte se termine avec le crochet de fermeture de l'instruction using. Un bon design devrait également libérer des ressources à la base de données dès qu'il n'est plus nécessaire.
Ma question est maintenant ce que je devrais faire dans mon cas? Gardez simplement le contexte de base de données en vie jusqu'à ce que j'aie fini ma tâche d'optimisation qui prend du temps. Ou fermez la connexion car elle n'est pas nécessaire jusqu'à la fin de l'optimisation. Mais dans ce dernier cas, qu'est-ce que je fais avec les objets Job, parce que j'aurai alors besoin d'accéder à certaines propriétés de navigation dont je ne peux pas parce que le contexte a été fermé. (Et en passant les données dans les instances de la classe Job ne seront pas modifiées par l'optimisation, donc il n'est pas nécessaire de garder une trace des modifications apportées à ces objets, car il n'y en aura pas)
peut m'aider à comprendre quelle est la conception recommandée dans ce cas.
Meilleures salutations
Merci pour le conseil. J'ai oublié de mentionner la chose suivante que j'ai ajoutée à mon message original juste après avoir répondu à ma question. Et d'ailleurs les données dans les instances de la classe Job ne seront pas modifiées par l'optimisation, donc il n'est pas nécessaire de garder trace des modifications apportées à ces objets, car il n'y en aura pas " impliquer l'action de l'utilisateur. Même dans ce cas, je devrais garder la connexion ouverte (il pourrait être un certain temps)? – user2653422