| File: System\Data\Common\DbProviderFactory.cs | Web Access |
| Project: src\runtime\src\libraries\System.Data.Common\src\System.Data.Common.csproj (System.Data.Common) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics.CodeAnalysis; namespace System.Data.Common { [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] public abstract partial class DbProviderFactory { private bool? _canCreateDataAdapter; private bool? _canCreateCommandBuilder; protected DbProviderFactory() { } public virtual bool CanCreateBatch => false; public virtual bool CanCreateDataSourceEnumerator => false; public virtual bool CanCreateDataAdapter { get { if (!_canCreateDataAdapter.HasValue) { using (DbDataAdapter? adapter = CreateDataAdapter()) { _canCreateDataAdapter = adapter != null; } } return _canCreateDataAdapter.Value; } } public virtual bool CanCreateCommandBuilder { get { if (!_canCreateCommandBuilder.HasValue) { using (DbCommandBuilder? builder = CreateCommandBuilder()) { _canCreateCommandBuilder = builder != null; } } return _canCreateCommandBuilder.Value; } } public virtual DbBatch CreateBatch() => throw new NotSupportedException(); public virtual DbBatchCommand CreateBatchCommand() => throw new NotSupportedException(); public virtual DbCommand? CreateCommand() => null; public virtual DbCommandBuilder? CreateCommandBuilder() => null; public virtual DbConnection? CreateConnection() => null; public virtual DbConnectionStringBuilder? CreateConnectionStringBuilder() => null; public virtual DbDataAdapter? CreateDataAdapter() => null; public virtual DbParameter? CreateParameter() => null; public virtual DbDataSourceEnumerator? CreateDataSourceEnumerator() => null; public virtual DbDataSource CreateDataSource(string connectionString) => new DefaultDataSource(this, connectionString); } }