获取 SqlClientFactory
适用于: .NET Framework .NET .NET Standard
获取 DbProviderFactory 的过程涉及将有关数据提供程序的信息传递给 DbProviderFactories 类。 GetFactory 方法将基于此信息创建一个强类型提供程序工厂。 例如,若要创建 SqlClientFactory,可以传递 GetFactory
字符串,该字符串的提供程序名称指定为“Microsoft.Data.SqlClient”。
GetFactory
的其他重载采用 DataRow。 创建该提供程序工厂后,可以使用其方法创建其他对象。 SqlClientFactory
的部分方法包括 CreateConnection、CreateCommand 和 CreateDataAdapter。
注册 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");
}