In LINQ to SQL
InsertOnSubmit()
'Adds an entity in a pending insert state to this Table.'
Whereas
SubmitChanges()
'Computes the set of modified objects to be inserted, updated, or deleted, and executes the appropriate commands to implement the changes to the database.'
So Linq to SQL tracks your changes and then uses SubmitChanges to create the neccessary transactions which will commit the changes to your database.
LINQ to Entites uses
SaveChanges()
as the objects in Linq to Entites are not using a lock against the record in the database and so need to be saved rather than the changes submitted.
There's a comprehensive list of differences between L2S and L2E in this stackoverflow question.