Membuat Sisipan Pukal dengan SqlBulkCopy daripada Senarai Objek
SqlBulkCopy ialah alat yang berkuasa untuk memasukkan data yang cekap ke dalam SQL Server. Apabila mengendalikan sejumlah besar objek, memanfaatkan fungsi ini boleh meningkatkan prestasi dengan ketara. Satu cabaran yang berpotensi timbul apabila data disimpan dalam Senarai<> objek mudah, menimbulkan persoalan tentang cara melakukan pemasukan pukal menggunakan SqlBulkCopy.
Pelaksanaan IDataReader Tersuai
Satu pilihan ialah melaksanakan IDataReader tersuai yang mendedahkan data dalam senarai<> dalam format yang serasi dengan SqlBulkCopy. Walau bagaimanapun, pendekatan ini boleh memakan masa dan intensif sumber.
Pendekatan Alternatif dengan FastMember
Penyelesaian alternatif dengan kecekapan dan kemudahan penggunaan yang lebih baik ialah FastMember. Pustaka ini membolehkan penukaran terus Senarai<> ke dalam format yang boleh digunakan oleh SqlBulkCopy:
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
Dalam coretan kod ini, komponen ObjectReader daripada FastMember menukarkan Senarai<> objek ke dalam aliran data yang mematuhi SqlBulkCopy. Dengan menyatakan pemetaan lajur yang dikehendaki (cth., "Id", "Nama", "Penerangan"), proses pemindahan data boleh disesuaikan mengikut keperluan.
Faedah Menggunakan ObjectReader
Kelebihan menggunakan ObjectReader termasuk:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Sisipan Pukal ke dalam SQL Server dengan Cekap daripada Senarai Objek menggunakan SqlBulkCopy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!