This question is kind of old - I actually forget I had asked it myself! So it's weird to come across it in a search for the same issue more than a year later. I did find a solution though.
At first, I used something like this (which doesn't work):
myBindingSource.DataSource = myLinqToSqlDataContext.SomeTable.ToList();
When I used:
myBindingSOurce.DataSource = myLinqToSqlDataContext.SomeTable.Take(20);
the bindingsource will update the underlying database for inserts and deletes without problems.
So I quess it's important to make sure the datasource is an IQueryable instead of a List.