Comment effacer les entités de suivi dans le cadre de l'entité

Je suis en cours d'exécution un peu de correction de code qui s'exécute sur un gros tas d'entités, comme les progrès de sa vitesse diminue, c'est parce que le nombre d'entités de suivi dans le contexte d'augmenter à chaque itération, Il peut prendre un certain temps donc je suis de l'enregistrement des modifications à la fin de chaque itération. Chaque itération est indépendant et ne change pas le previosuly chargé des entités.

Je sais que je peux désactiver le suivi des modifications, mais je ne veux pas, parce que ce n'est pas une insertion en bloc de code, mais le chargement des entités et de calculer un peu de choses et si les chiffres ne sont pas corrects définir les nouveaux numéros et de mettre à jour/supprimer/créer certaines autres entités. Je sais que je peux créer un nouveau DbContext pour chaque itération et probablement que ça irait plus vite que de faire tous dans le même exemple, mais je pense qu'il pourrait y avoir une meilleure façon.

Donc la question est; Est-il un moyen de nettoyer les entités précédemment chargé dans la base de données de contexte?

  • Vous pouvez les appeler context.Entry(entity).State = EntityState.Detached et il va arrêter le suivi de cette entité.
  • Pourquoi ne pas instancier un nouveau Contexte? Il n'y a vraiment pas grand-généraux, sauf si vous avez besoin d'un code optimisé.
  • entity framework frappe le serveur de base de données uniquement pour la modification des entités, vous n'avez pas de problèmes de performances à ce sujet. mais vous pouvez créer un nouveau contexte uniquement composé de tables de travail pour la rendre plus rapide.
  • détecter les changements prennent du temps, je ne suis pas inquiet DbPerformance.
  • avez-vous fait une mise au point et de suivi de la performance de goulot d'étranglement, ou tout simplement en supposant que cela?
InformationsquelleAutor hazimdikenli | 2014-12-11