2011-02-23 11 views
5

Estoy usando el código EF primero y necesito insertar muchas filas en una tabla, un par de miles de registros, tengo en una lista genérica. Solo hacer un ciclo foreach y agregar cada entidad a la tabla y finalizar con SaveChanges() lleva bastante tiempo.código EF primero insertando muchas filas

¿Hay alguna forma abultada de hacer esto con EF o código primero o debería hacer SqlCommand o SqlBulkCopy en su lugar? Además, ¿hay algo que pueda desactivar primero en el código EF para hacer que los insertos sean más rápidos?

¡Gracias por la ayuda!

+0

Ojalá pudiera obtener más consejos sobre cómo hacer insertar filas con código EF primero, más rápido, pero supongo que no es factible. –

Respuesta

1

Puede llamar al SaveChanges() con menos frecuencia.

Sin embargo, nada de lo que pueda hacer con el EF se acercará al rendimiento de algo como SqlBulkCopy.

+0

+1 ORM nunca ha sido ni será una solución de rendimiento para operaciones masivas. –

+0

Solo hacer dbContext.Entityname.Add() 4000 veces lleva 20-30 segundos. El SaveChanges() después del bucle toma más de 10 segundos. Probablemente yendo para SqlBulkCopy ... –

Cuestiones relacionadas