获取 SqlClientFactory

适用于: .NET Framework .NET .NET Standard

下载 ADO.NET

获取 DbProviderFactory 的过程涉及将有关数据提供程序的信息传递给 DbProviderFactories 类。 GetFactory 方法将基于此信息创建一个强类型提供程序工厂。 例如,若要创建 SqlClientFactory,可以传递 GetFactory 字符串,该字符串的提供程序名称指定为“Microsoft.Data.SqlClient”。

GetFactory 的其他重载采用 DataRow。 创建该提供程序工厂后,可以使用其方法创建其他对象。 SqlClientFactory 的部分方法包括 CreateConnectionCreateCommandCreateDataAdapter

注册 SqlClientFactory

若要在 .NET Framework 中按 DbProviderFactories 类检索 SqlClientFactory 对象,则需要在 App.config 或 web.config 文件中注册该对象。 下面的配置文件片断演示 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>  

invariant 属性标识基础数据提供程序。 在创建新工厂时也使用这种由三部分组成的命名语法,并用于标识应用程序配置文件中的提供程序,以便在运行时能够检索提供程序名称及其关联的连接字符串。

注意

在 .NET core 中,由于没有 GAC 或全局配置支持,因此应通过调用项目中的 RegisterFactory 方法来注册 SqlClientFactory 对象。

以下示例演示如何在 .NET Core 应用程序中使用 SqlClientFactory

private static DbProviderFactory GetFactory()
{
    // register SqlClientFactory in provider factories
    DbProviderFactories.RegisterFactory("Microsoft.Data.SqlClient", SqlClientFactory.Instance);

    return DbProviderFactories.GetFactory("Microsoft.Data.SqlClient");
}

另请参阅