Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LINQ插入1000条记录 for(int i=0;i_Linq_Entity Framework_Linq To Sql_Linq To Xml_Linq To Objects - Fatal编程技术网

使用LINQ插入1000条记录 for(int i=0;i

使用LINQ插入1000条记录 for(int i=0;i,linq,entity-framework,linq-to-sql,linq-to-xml,linq-to-objects,Linq,Entity Framework,Linq To Sql,Linq To Xml,Linq To Objects,此方法适用于插入1000条记录 有更好的方法可以做到这一点?让dc.SubmitChanges()脱离循环 for (int i = 0; i < 1000; i++) { PrivateMessage privateMessage = new PrivateMessage() { id=i }; dc.PrivateMessages.InsertOnSubmit(privateMessage); dc.S

此方法适用于插入1000条记录

有更好的方法可以做到这一点?

让dc.SubmitChanges()脱离循环

 for (int i = 0; i < 1000; i++)
 {
      PrivateMessage privateMessage = new PrivateMessage()
      {
          id=i
      };
      dc.PrivateMessages.InsertOnSubmit(privateMessage);
      dc.SubmitChanges(); 
 }
for(int i=0;i<1000;i++)
{
PrivateMessage PrivateMessage=新PrivateMessage()
{
id=i
};
dc.privateMessage.InsertOnSubmit(privateMessage);
}
dc.提交更改();
让dc.SubmitChanges()脱离循环

 for (int i = 0; i < 1000; i++)
 {
      PrivateMessage privateMessage = new PrivateMessage()
      {
          id=i
      };
      dc.PrivateMessages.InsertOnSubmit(privateMessage);
      dc.SubmitChanges(); 
 }
for(int i=0;i<1000;i++)
{
PrivateMessage PrivateMessage=新PrivateMessage()
{
id=i
};
dc.privateMessage.InsertOnSubmit(privateMessage);
}
dc.提交更改();
是的——最好不要在循环中执行
InsertOnSubmit
。尝试:

for (int i = 0; i < 1000; i++)
{
           PrivateMessage privateMessage = new PrivateMessage()
            {
                id=i
            };
            dc.PrivateMessages.InsertOnSubmit(privateMessage);
}
           dc.SubmitChanges(); 
List messages=newlist();
对于(int i=0;i<1000;i++)
{
添加(新的PrivateMessage(){id=i});
}
dc.PrivateMessages.InsertAllOnSubmit(消息);
dc.提交更改();
是的——最好不要在循环中执行
InsertOnSubmit
。尝试:

for (int i = 0; i < 1000; i++)
{
           PrivateMessage privateMessage = new PrivateMessage()
            {
                id=i
            };
            dc.PrivateMessages.InsertOnSubmit(privateMessage);
}
           dc.SubmitChanges(); 
List messages=newlist();
对于(int i=0;i<1000;i++)
{
添加(新的PrivateMessage(){id=i});
}
dc.PrivateMessages.InsertAllOnSubmit(消息);
dc.提交更改();
还有一个:

List<PrivateMessage> messages = new List<PrivateMessage>();

for (int i = 0; i < 1000; i++)
{
   messages.Add(new PrivateMessage() { id=i });
}

dc.PrivateMessages.InsertAllOnSubmit(messages);
dc.SubmitChanges();
这里还有一个:

List<PrivateMessage> messages = new List<PrivateMessage>();

for (int i = 0; i < 1000; i++)
{
   messages.Add(new PrivateMessage() { id=i });
}

dc.PrivateMessages.InsertAllOnSubmit(messages);
dc.SubmitChanges();

是的,有一个更好的方法:不要将Linq用于此类工作。它不是为这个设计的。使用<代码> SqLBulkPase< /Cult>组件进行批量插入。我将考虑不使用LINQ来插入。您可以改为查看类似SqlBulkCopy的内容。由于性能原因,我不得不从我的一个应用程序中删除一些LINQ插入,改为使用大容量复制方法。当然,我处理的是上百条记录……SqlBulkCopy是一种更好的方法。你应该考虑使用Sql BulkCopyScript代替它的Sql BulkCopyAdvestys:是的,有更好的方法:不要使用LINQ来进行这种工作。它不是为这个设计的。使用<代码> SqLBulkPase< /Cult>组件进行批量插入。我将考虑不使用LINQ来插入。您可以改为查看类似SqlBulkCopy的内容。由于性能原因,我不得不从我的一个应用程序中删除一些LINQ插入,改为使用大容量复制方法。当然,我处理的是上百条记录……SqlBulkCopy是一种更好的方法。您应该考虑使用Sql BulkCopys代替其Sql BulkCopy优势。