我突然遇到了使用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
不使用循环和集合?
答案 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)
这只是一个简单的插入和删除方法,应该一起写。
向第二个表插入一个必要的字段,当它完成时,第二个语句将从第一个表中删除字段