我有一个用linq-to-sql插入到数据库中的对象列表。 目前,我使用foreach循环,增加了每个元素,看起来大致是这样的:用linq-to-sql插入对象列表
foreach (o in List<MyObjectModel)
{
using MyDataContext
{
TheLinqToSqlTableModel TheTable = new TheLinqToSqlTableModel();
TheTable.Fieldname = o.Fieldname;
.... repeat for each field
MyDataContext.TheTablename.InsertOnSubmit(TheTable);
MyDataContext.SubmitChanges();
}
}
有没有更好的方式使用LINQ到SQL插入一个数据库对象的列表?
感谢您的建议。
+1在这里重用上下文是个好主意。使用存储过程是更好的方法。 LINQ不会批量执行'INSERT' /'UPDATE',因为它实际上并不打算。 – Yuck 2012-02-01 14:09:13
明白了:linq-to-sql中没有批量操作;感谢您重复使用DC的提示。 – frenchie 2012-02-01 14:22:56
linq-to-sql将为SubmitChanges的每次调用添加一个事务,只要您只在事务范围无用时调用它即可。在foreach中使用插入sp也不会将其更改为bulkinsert。在这种情况下,你需要移动到SqlBulkCopy – Pleun 2012-02-01 14:32:20