我有一個用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