Mendapatkan SqlClientFactory
Berlaku untuk: .NET Framework .NET .NET Standard
Proses mendapatkan DbProviderFactory melibatkan meneruskan informasi tentang penyedia data ke kelas DbProviderFactories. Berdasarkan informasi ini, metode GetFactory membuat pabrik penyedia yang sangat berjenis. Misalnya, untuk membuat SqlClientFactory, Anda dapat meneruskan GetFactory
string dengan nama penyedia yang ditentukan sebagai "Microsoft.Data.SqlClient".
Kelebihan beban GetFactory
membutuhkan DataRow. Setelah Anda membuat pabrik penyedia, Anda lalu dapat menggunakan metodenya untuk membuat objek tambahan. Beberapa metode dari SqlClientFactory
termasuk CreateConnection, CreateCommand, dan CreateDataAdapter.
Mendaftarkan SqlClientFactory
Untuk mengambil SqlClientFactory objek berdasarkan DbProviderFactories kelas di .NET Framework, Anda perlu mendaftarkannya dalam file App.config atau web.config . Fragmen file konfigurasi berikut ini menunjukkan sintaks dan format untuk Microsoft.Data.SqlClient.
<system.data>
<DbProviderFactories>
<add name="Microsoft SqlClient Data Provider"
invariant="Microsoft.Data.SqlClient"
description="Microsoft SqlClient Data Provider for SQL Server"
type="Microsoft.Data.SqlClient.SqlClientFactory, Microsoft.Data.SqlClient, Version=2.0.20168.4, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5"/>
</DbProviderFactories>
</system.data>
Atribut invariant mengidentifikasi penyedia data yang mendasar. Sintaks penamaan tiga bagian ini juga digunakan saat membuat pabrik baru dan untuk mengidentifikasi penyedia dalam file konfigurasi aplikasi sehingga nama penyedia, bersama dengan string koneksi terkait, dapat diambil pada waktu yang tepat.
Catatan
Di inti .NET, karena tidak ada GAC atau dukungan konfigurasi global, SqlClientFactory objek harus didaftarkan dengan memanggil RegisterFactory metode dalam proyek.
Contoh berikut menunjukkan cara menggunakan SqlClientFactory dalam aplikasi inti .NET.
private static DbProviderFactory GetFactory()
{
// register SqlClientFactory in provider factories
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);
return DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");
}