Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: .NET Framework
.NET
Standard
El proceso de obtención de DbProviderFactory implica pasar información sobre un proveedor de datos a la clase DbProviderFactories. En función de esta información, el método GetFactory crea un generador del proveedor fuertemente tipado. Por ejemplo, para crear un SqlClientFactory, puede pasar GetFactory una cadena con el nombre de proveedor especificado como "Microsoft.Data.SqlClient".
La otra sobrecarga de GetFactory toma DataRow. Una vez creado el generador del proveedor, se pueden utilizar sus métodos para crear objetos adicionales. Entre los métodos de SqlClientFactory se incluyen CreateConnection, CreateCommand y CreateDataAdapter.
Register SqlClientFactory
Para recuperar el objeto SqlClientFactory por la clase DbProviderFactories en .NET Framework, es necesario registrarlo en un archivo App.config o web.config. El siguiente fragmento del archivo de configuración muestra la sintaxis y formato de 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>
El atributo invariant identifica el proveedor de datos subyacente. Esta sintaxis de nomenclatura de tres partes también se utiliza al crear una nueva factoría y para identificar al proveedor en un archivo de configuración de la aplicación, de modo que el nombre del proveedor, junto con su cadena de conexión asociada, pueda recuperarse en tiempo de ejecución.
Nota
En .NET Core, dado que no hay compatibilidad de configuración global o GAC, el objeto SqlClientFactory se debe registrar llamando al método RegisterFactory en el proyecto.
En el ejemplo siguiente se muestra cómo usar SqlClientFactory en una aplicación .NET Core.
private static DbProviderFactory GetFactory()
{
// register SqlClientFactory in provider factories
DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);
return DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");
}