ADO.NET工厂方法 (DbProviderFactory、SqlClientFactory)
DbProviderFactory 类
表示一组方法,这些方法用于创建数据源类的提供程序实现的实例。
继承层次结构
System.Object
System.Data.Common.DbProviderFactory
System.Data.EntityClient.EntityProviderFactory
System.Data.Odbc.OdbcFactory
System.Data.OleDb.OleDbFactory
System.Data.OracleClient.OracleClientFactory
System.Data.SqlClient.SqlClientFactory
public abstract class DbProviderFactory
SqlClientFactory 类
表示一组方法用于创建实例 System.Data.SqlClient 的数据源类的提供程序的实现。
继承层次结构
System.Object
System.Data.Common.DbProviderFactory
System.Data.SqlClient.SqlClientFactory
public sealed class SqlClientFactory : DbProviderFactory, IServiceProvider
源代码:
namespace System.Data.Common { /// <summary> /// 表示一组方法,这些方法用于创建数据源类的提供程序实现的实例。 /// </summary> public abstract class DbProviderFactory // V1.2.3300 { protected DbProviderFactory() { } virtual public bool CanCreateDataSourceEnumerator { get { return false; } } /// <summary> /// 返回实现 DbCommand 类的提供程序类的一个新实例 /// </summary> public virtual DbCommand CreateCommand() { return null; } /// <summary> /// 返回实现 DbConnection 类的提供程序类的一个新实例 /// </summary> public virtual DbConnection CreateConnection() { return null; } /// <summary> /// 返回实现 DbDataAdapter 类的提供程序类的一个新实例 /// </summary> public virtual DbDataAdapter CreateDataAdapter() { return null; } /// <summary> /// 返回实现 DbParameter 类的提供程序类的一个新实例 /// </summary> public virtual DbParameter CreateParameter() { return null; } public virtual DbCommandBuilder CreateCommandBuilder() { return null; } public virtual DbConnectionStringBuilder CreateConnectionStringBuilder() { return null; } public virtual CodeAccessPermission CreatePermission(PermissionState state) { return null; } public virtual DbDataSourceEnumerator CreateDataSourceEnumerator() { return null; } } }
namespace System.Data.SqlClient { /// <summary> /// 表示一组方法用于创建实例 System.Data.SqlClient 的数据源类的提供程序的实现。 /// </summary> public sealed class SqlClientFactory : DbProviderFactory, IServiceProvider { public static readonly SqlClientFactory Instance = new SqlClientFactory(); private SqlClientFactory() { } public override bool CanCreateDataSourceEnumerator { get { return true; } } /// <summary> /// 返回一个强类型 DbCommand 实例 /// </summary> public override DbCommand CreateCommand() { return new SqlCommand(); } /// <summary> /// 返回一个强类型 DbConnection 实例 /// </summary> public override DbConnection CreateConnection() { return new SqlConnection(); } /// <summary> /// 返回一个强类型 DbDataAdapter 实例 /// </summary> public override DbDataAdapter CreateDataAdapter() { return new SqlDataAdapter(); } /// <summary> /// 返回一个强类型 DbParameter 实例 /// </summary> public override DbParameter CreateParameter() { return new SqlParameter(); } public override DbCommandBuilder CreateCommandBuilder() { return new SqlCommandBuilder(); } public override DbConnectionStringBuilder CreateConnectionStringBuilder() { return new SqlConnectionStringBuilder(); } public override CodeAccessPermission CreatePermission(PermissionState state) { return new SqlClientPermission(state); } public override DbDataSourceEnumerator CreateDataSourceEnumerator() { return SqlDataSourceEnumerator.Instance; } object IServiceProvider.GetService(Type serviceType) { object result = null; if (serviceType == GreenMethods.SystemDataCommonDbProviderServices_Type) { result = GreenMethods.SystemDataSqlClientSqlProviderServices_Instance(); } return result; } } }

浙公网安备 33010602011771号