使用SqlBulkCopy 從清單插入資料
當面臨使用SqlBulkCopy 從通用清單執行批次插入的任務時,這是很自然的考慮實作自訂IDataReader。然而,使用 FastMember 庫有一個更有效率、更方便的解決方案。
FastMember 解決方案
FastMember 提供了一個名為 ObjectReader 的強大類,它簡化了列表轉換的過程將物件放入資料讀取器中。使用方法如下:
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
在此範例中,資料是包含屬性「Id」、「名稱」和「描述」的物件清單。
ObjectReader 可以也可以使用非通用資料來源,且無需事先指定成員名稱。但是,如果您未在 ObjectReader 中指定它們,則可能需要使用 SqlBulkCopy 的 ColumnMappings 方面來定義物件屬性和目標列之間的對應。
以上是如何使用 SqlBulkCopy 有效率地將清單中的資料批次插入 SQL Server 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!