【发布时间】:2012-01-20 19:58:40
【问题描述】:
我在另一个 SQL 服务器上有一个表,我需要从一夜之间复制它。目标表的结构非常相似,所以我打算使用类似下面的代码。 来源-http://forums.asp.net/t/1322979.aspx/1
我还没有尝试过,但是在 linq 中是否有更好/更快的方法来做到这一点?
//there exist two table list and listSecond
DataClassesDataContext dataClass = new DataClassesDataContext(); //create the instance of the DataContext
var str = from a in dataClass.lists select a;
foreach (var val in str) // iterator the data from the list and insert them into the listSecond
{
listSecond ls = new listSecond();
ls.ID = val.ID;
ls.pid = val.pid;
ls.url = val.url;
dataClass.listSeconds.InsertOnSubmit(ls);
}
dataClass.SubmitChanges();
Response.Write("success");
【问题讨论】:
-
创建一个存储过程来插入选择的结果可能会更快。不确定 LINQ 会做什么,但您最终可能会收到大量 INSERT...VALUES 语句。您总是可以将存储过程添加到您的数据上下文中。
-
只是为了添加一些上下文,以防有人从谷歌到这里。我正在经历“存储过程坏而 LINQ 好”的阶段,这就是我首先提出这个问题的原因。显然这是错误的态度,这是为工作选择正确工具的一个很好的例子。
标签: c# linq-to-sql