Да, @bzlm рассмотрел это сначала, но если вы предпочитаете что-то более подробное:
// dc = DataContext, assumes TableA contains items of type A
var toInsert = from b in TableB
where ...
select new A
{
...
};
TableA.InsertAllOnSubmit(toInsert);
dc.SubmitChanges();
Я предпочитаю это с точки зрения проверки / обслуживания, так как я думаю, что это немного более очевидно, что происходит в select.
В ответ на замечание @JfBeaulac:
Обратите внимание, что это не будет генерировать показанный SQL - насколько я знаю, что на самом деле невозможно генерировать напрямую с помощью Linq (для SQL), вам придется обойти linq и перейти прямо в базу данных. Функционально он должен достичь того же результата в том, что он выполнит выбор и затем вставит данные - но он будет передавать данные от сервера к клиенту и обратно, поэтому может быть неоптимальным для больших объемов данных.