2010-01-17 53 views

回答

8

是@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(); 

我有种从一个审查/维修点喜欢这个,因为我觉得它有点更明显发生了什么事的选择。


为响应观察@JfBeaulac:

请注意,这不会生成中的SQL - 只要我知道它是不能够实际直接使用LINQ to生成(到SQL),你必须绕过linq并直接进入数据库。在功能上它应该达到相同的结果,因为它将执行选择,然后插入数据 - 但它会将数据从服务器到客户端的往返传回,因此可能不适用于大量数据。

+1

难道你不喜欢随意的任何downvotes没有解释 – Murph 2014-01-21 21:45:36

+2

这不会转化为问题中指定的SQL语句。它将选择TableB中的给定条目,并在TableA中生成一堆插入语句。它看起来很相似,但不是给定SQL的直接翻译。 – 2014-08-22 12:51:14

+0

@JfBeaulac我会修改那篇文章。 – Murph 2014-08-22 16:36:48

1
context 
    .TableA 
    .InsertAllOnSubmit(
    context 
     .TableB 
     .Where(...) 
     .Select(b => new A { ... }) 
);