Rumah >pangkalan data >tutorial mysql >Bolehkah FastMember Menghapuskan Keperluan untuk IDataReader dengan SqlBulkCopy untuk Sisipan Pukal daripada Senarai Objek?
Pemasukan Pukal dengan SqlBulkCopy daripada Senarai Objek
Apabila berhadapan dengan tugas untuk melaksanakan pemasukan yang besar ke dalam pangkalan data daripada senarai objek mudah, seseorang mungkin tertanya-tanya tentang menggunakan SqlBulkCopy untuk mencapai prestasi ini. Timbul persoalan sama ada pelaksanaan tersuai antara muka IDataReader diperlukan untuk operasi sedemikian.
Pertanyaan ini boleh dijawab dengan mudah dengan menerokai keupayaan FastMember. Dengan menggunakan perpustakaan ini, anda boleh melaksanakan sisipan pukal tanpa memerlukan Jadual Data perantara. Pendekatan ini bukan sahaja memudahkan prosedur tetapi juga meningkatkan prestasi, seperti yang ditunjukkan oleh ujian empirikal.
Dalam amalan, pelaksanaan menggunakan FastMember berlaku seperti berikut:
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
Adalah diperhatikan bahawa ObjectReader boleh menampung kedua-dua sumber data generik dan bukan generik. Selain itu, menyatakan nama ahli terlebih dahulu bukanlah satu keperluan yang ketat. Walau bagaimanapun, mengeksploitasi ciri ColumnMappings SqlBulkCopy boleh terbukti berfaedah dalam situasi di mana spesifikasi manual diabaikan.
Atas ialah kandungan terperinci Bolehkah FastMember Menghapuskan Keperluan untuk IDataReader dengan SqlBulkCopy untuk Sisipan Pukal daripada Senarai Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!