FastMember के साथ, आप इसे DataTable
. के माध्यम से जाने की आवश्यकता के बिना कर सकते हैं (जो, मेरे परीक्षणों में, प्रदर्शन को दोगुने से भी अधिक करता है):
using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
bcp.DestinationTableName = "SomeTable";
bcp.WriteToServer(reader);
}
ध्यान दें कि ObjectReader
गैर-सामान्य स्रोतों के साथ भी काम कर सकता है, और सदस्य-नामों को पहले से निर्दिष्ट करना आवश्यक नहीं है (हालाँकि आप शायद ColumnMappings
का उपयोग करना चाहते हैं। SqlBulkCopy
. का पहलू यदि आप उन्हें ObjectReader
. में निर्दिष्ट नहीं करते हैं स्वयं)।