En el siguiente video te explico una manera correcta de insertar miles de registros utilizando Entity Framework.
Aprende Entity Framework en 10 minutos
int numeroLotes = 1000;
using (var db = new pruebaEntities())
{
for (int i = 0; i < 4000; i++)
{
var oNumber = new numbers();
oNumber.number = i;
oNumber.date = DateTime.Now;
db.numbers.Add(oNumber);
if(i%numeroLotes==0)
db.SaveChanges();
}
db.SaveChanges();
}
}
