2010-01-17 67 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 { ... }) 
);