Estaba guardando varios registros en un ciclo utilizando “Entity Framework”, y dentro de este ciclo estaba llamando “SaveChanges”.

Algo similar a esto:

foreach (var cliente in clientes)
{
   var ElCliente = new Cliente();
   ElCliente.Nombre = cliente.Nombre;
   ElCliente.Apellido = cliente.Apellido;
   repositorioClientes.Insertar(ElCliente);
   repositorioClientes.SaveChanges();
}

Al hacer lo anterior, me aparecía este mensaje:

New transaction is not allowed because there are other threads running in the session.

Investigando en Internet me di cuenta de que para evitar este error lo mejor es hacer solamente las inserciones dentro del ciclo, pero dejar el “SaveChanges” fuera del mismo, de esta forma:

foreach (var cliente in clientes)
{
   var ElCliente = new Cliente();
   ElCliente.Nombre = cliente.Nombre;
   ElCliente.Apellido = cliente.Apellido;
   repositorioClientes.Insertar(ElCliente);
}
repositorioClientes.SaveChanges();

Y listo, con eso se fue el error y los registros se guardaron correctamente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


tres × 8 =