Del curso: .NET 5: Entity Framework Core Esencial

Accede al curso completo hoy mismo

Únete hoy para acceder a más de 24.900 cursos impartidos por expertos del sector.

Evitando errores con múltiples operaciones en paralelo

Evitando errores con múltiples operaciones en paralelo

Los contextos de base de datos de Entity Framework Core no son seguros para subprocesos. Eso significa que un solo contexto no se puede utilizar con diferentes hilos en operaciones paralelas. Vamos ver esto con un ejemplo. Tengo aquí mi aplicación de consola, LibraryManager, y aquí vamos a hacer algo prohibido. Tenemos aquí nuestro contexto, lo estamos creando aquí, using var context, ahora creamos aquí un array de autores, creamos una lista de tareas, de tasks, recorremos la lista de autores y por cada autor añadimos una tarea a nuestra lista de tareas usando un Task.Run y una lambda que lo que va a hacer es añadir el autor al contexto, persistir los cambios, luego eliminarlo y volver a persistir. Finalmente, al acabar el for, esperamos, con un await Task.WhenAll, que todas las tareas finalicen. ¿Qué está ocurriendo aquí? Pues aquí esta ocurriendo que estamos usando un solo contexto para ejecutar ene operaciones en paralelo, en este caso dos, porque nuestro array tiene solo dos…

Contenido