Estoy ejecutando un código de corrección que se ejecuta sobre una gran pila de entidades, a medida que avanza, su velocidad disminuye, eso se debe a que la cantidad de entidades rastreadas en el contexto aumenta con cada iteración, puede llevar mucho tiempo, así que estoy guardando los cambios al final de cada iteración. Cada iteración es independiente y no cambia las entidades cargadas previamente.
Sé que puedo desactivar el seguimiento de cambios, pero no quiero, porque no es un código de inserción masiva, sino cargando las entidades y calculando algunas cosas y si los números no son correctos, configure los nuevos números y actualice / elimine / cree algunas entidades adicionales. Sé que puedo crear un nuevo DbContext para cada iteración y probablemente eso funcionaría más rápido que hacerlo todo en la misma instancia, pero estoy pensando que podría haber una mejor manera.
Entonces la pregunta es; ¿Hay alguna forma de borrar las entidades cargadas previamente en el contexto de la base de datos?
context.Entry(entity).State = EntityState.Detached
y dejará de rastrear esa entidad en particular.