Table generic has a
InsertAllOnSubmit[
^] method, you can use to add multiple objects at one, like this:
var toInsert = from b in TableB
where ...
select new A { ... };
TableA.InsertAllOnSubmit(toInsert);
dc.SubmitChanges();
or
db
.TableA
.InsertAllOnSubmit(
db
.TableB
.Where( ... )
.Select(b => new A { ... })
);
But even with deferred execution, every affected record will go all the way from the SQL server to the application and back. You better look for a server side solution. If the built-in tools are not enough, you can create .net integrated functions and procedures and add it to the server and database. This way, the data will not be serialized, will not travel, and you gain a lot of performance. If you decide to take this path, you can start here:
http://msdn.microsoft.com/en-us/library/w2kae45k(v=vs.100).aspx[
^]