Het lijkt erop dat dit zou werken, maar de wijzigingen (en dus het geheugen) die door de DataContext worden bewaard, zullen met elke InsertOnSubmit groeien. Misschien is het raadzaam om elke 100 records een SubmitChanges uit te voeren?
Ik zou ook eens kijken naar SqlBulkCopy om te zien of het niet beter bij uw usecase past.