2010-02-24 45 views
0

我突然遇到了使用LINQ to SQL將SQL Server數據庫中的某些記錄從一個表移動到另一個表時出現問題的問題。是否有可能在LINQ to SQL中寫入一個如此簡單的查詢:使用LINQ to SQL將記錄移動到另一個表

INSERT INTO Table2 SELECT * FROM Table1 WHERE Selected = 1 
GO 

DELETE FROM Table1 WHERE Selected = 1 
GO 

不使用循環和集合?

+0

說實話,這應該是一個存儲過程。爲此使用LINQ將是矯枉過正的。 – Codesleuth 2010-02-24 09:33:26

+0

我有同樣的問題,並解決了我的問題
[看到這個答案。這對我有用](https://stackoverflow.com/questions/48712294/move-record-from-a-table-to-another-using-foreach-in-c-sharp) – Damon 2018-02-09 19:45:06

回答

1

這裏絕對不需要LINQ。考慮性能&發佈兩個SQL語句(或調用sproc)的可維護性影響,而不必加載潛在的數千個對象,然後再次保存它們。

度假至SqlCommand s。那將是你最好的選擇。

0

這只是一個簡單的插入和刪除方法,應該寫在一起。

到第二個表,當其完成

一個插入必要的字段,第二條語句將從第一表

1

刪除字段我不知道的方式,在LINQ2SQL移動行沒有環。 :)

這種事情在SQL中更容易。您可以使用output into子句在單個語句中移動行:

delete from Table1 
output deleted.id, deleted.name into Table2 
where Selected = 1 
+0

InsertAllOnSubmit,DeleteAllOnSubmit - look no(顯式)循環( - :我完全同意Linq to SQL不是合適的解決方案,儘管如此。 – Murph 2010-02-24 12:53:59

+0

感謝查詢示例,+ 1 – rem 2010-02-24 18:20:11

相關問題