使用LINQ to SQL将记录移动到另一个表

时间:2010-02-24 09:31:40

标签: c# sql-server linq-to-sql

我突然遇到了使用LINQ to SQL将SQL Server数据库中的某些记录从一个表移动到另一个表的问题。是否可以在LINQ to SQL中编写一个简单的查询:

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

DELETE FROM Table1 WHERE Selected = 1
GO

不使用循环和集合?

3 个答案:

答案 0 :(得分:1)

你绝对不需要LINQ。考虑性能和发布两个SQL语句(或调用sproc)与可能加载可能数千个对象然后再将它们保存回来的可维护性含义。

诉诸SqlCommand s。那将是你最好的选择。

答案 1 :(得分:1)

我不知道在没有循环的情况下在Linq2Sql中移动行的方法。 :)

这种事情在SQL中要容易得多。您可以使用output into子句在单个语句中移动行:

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

答案 2 :(得分:0)

这只是一个简单的插入和删除方法,应该一起写。

向第二个表插入一个必要的字段,当它完成时,第二个语句将从第一个表中删除字段