Microsoft.EntityFrameworkCore.Storage Namespace

Classes

BoolTypeMapping

Represents the mapping between a .NET Boolean type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ByteArrayRelationalTypeMapper

Determines the type mapping to use for byte array properties.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ByteArrayTypeMapping

Represents the mapping between a .NET Byte array type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ByteTypeMapping

Represents the mapping between a .NET Byte type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

CharTypeMapping

Represents the mapping between a .NET Char type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

CoreTypeMapper

A simple default implementation of ITypeMapper

CoreTypeMapperDependencies

Service dependencies parameter class for CoreTypeMapper

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

CoreTypeMapping

Represents the mapping between a .NET type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Database

The main interaction point between a context and the database provider.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

DatabaseDependencies

Service dependencies parameter class for Database

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

DatabaseErrorLogState

Provided as the state to ILogger when logging an exception that occurred while accessing the database.

DatabaseProvider<TOptionsExtension>

The primary point where a database provider can tell EF that it has been selected for the current context.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

DatabaseProvider<TProviderServices,TOptionsExtension>

The primary point where a database provider can tell EF that it has been selected for the current context and provide the services required for it to function.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

DatabaseProviderDependencies

Service dependencies parameter class for DatabaseProvider<TOptionsExtension>

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

DatabaseProviderServices

The base set of services required by EF for a database provider to function.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

DateTimeOffsetTypeMapping

Represents the mapping between a .NET DateTimeOffset type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

DateTimeTypeMapping

Represents the mapping between a .NET DateTime type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

DbCommandLogData

Logging information about a DbCommand that is being executed.

Instances of this class are typically created by Entity Framework and passed to loggers, it is not designed to be directly constructed in your application code.

DbContextTransactionExtensions

Extension methods for IDbContextTransaction.

DbParameterLogData

Logging information about the parameters of a DbCommand that is being executed.

Instances of this class are typically created by Entity Framework and passed to loggers, it is not designed to be directly constructed in your application code.

DecimalTypeMapping

Represents the mapping between a .NET Decimal type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

DoubleTypeMapping

Represents the mapping between a .NET Double type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ExecutionResult<TResult>

Represents the execution state of an operation.

ExecutionStrategy

The base class for IExecutionStrategy implementations.

ExecutionStrategyContext

A class that provides dependencies for ExecutionStrategy

ExecutionStrategyDependencies

Service dependencies parameter class for IExecutionStrategy

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

FloatTypeMapping

Represents the mapping between a .NET Single type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

GuidTypeMapping

Represents the mapping between a .NET Guid type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

InMemoryDatabaseRoot

Acts as a root for all in-memory databases such that they will be available across context instances and service providers as long as the same instance of this type is passed to UseInMemoryDatabase<TContext>(DbContextOptionsBuilder<TContext>, String, Action<InMemoryDbContextOptionsBuilder>)

IntTypeMapping

Represents the mapping between a .NET Int32 type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

LongTypeMapping

Represents the mapping between a .NET Int64 type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

NonRetryingExecutionStrategy

An implementation of IExecutionStrategy that does no retries.

ParameterNameGenerator

Generates unique names for parameters.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ParameterNameGeneratorDependencies

Service dependencies parameter class for ParameterNameGeneratorFactory

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

ParameterNameGeneratorFactory

Creates instances of the ParameterNameGenerator type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RawSqlCommand

Represents a raw SQL command to be executed against a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ReaderColumn

An expected column in the relational data reader.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ReaderColumn<T>

An expected column in the relational data reader.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalCommand

A command to be executed against a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalCommandBuilder

Builds a command to be executed against a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalCommandBuilderDependencies

Service dependencies parameter class for RelationalCommandBuilder

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalCommandBuilderExtensions

Extension methods for the IRelationalCommandBuilder class.

RelationalCommandBuilderFactory

Factory for RelationalCommandBuilder instances.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalCommandExtensions

Extension methods typically used by internal code and database providers to execute commands on the low-level IRelationalCommand abstraction.

RelationalConnection

Represents a connection with a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalConnectionDependencies

Service dependencies parameter class for RelationalConnection

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalDatabase

The main interaction point between a context and the database provider.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalDatabaseCreator

Performs database/schema creation, and other related operations.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalDatabaseCreatorDependencies

Service dependencies parameter class for RelationalDatabaseCreator

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalDatabaseDependencies

Service dependencies parameter class for RelationalDatabase

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalDatabaseProviderServices

The primary services needed to interact with a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalDataReader

Reads result sets from a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalExecutionStrategyExtensions

Extension methods for IExecutionStrategy that can only be used with a relational database provider.

RelationalExecutionStrategyFactory

Factory for creating IExecutionStrategy instances for use with relational database providers.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

RelationalGeometryTypeMapping<TGeometry,TProvider>

Base class for relation type mappings to NTS Geometry and derived types.

RelationalSqlGenerationHelper

Provides services to help with generation of SQL commands.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalSqlGenerationHelperDependencies

Service dependencies parameter class for RelationalSqlGenerationHelper

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalTransaction

A transaction against the database.

Instances of this class are typically obtained from BeginTransaction() and it is not designed to be directly constructed in your application code.

RelationalTransactionFactory

A factory for creating RelationalTransaction instances.

This type is typically used by database providers It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalTransactionFactoryDependencies

Service dependencies parameter class for RelationalTransactionFactory.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalTypeMapper

Maps .NET types to their corresponding relational database types.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalTypeMapperDependencies

Service dependencies parameter class for RelationalTypeMapper

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

RelationalTypeMapperExtensions

Extension methods for the IRelationalTypeMapper class.

RelationalTypeMapping

Represents the mapping between a .NET type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalTypeMappingSource

The base class for relational type mapping starting with version 2.1. Relational providers should derive from this class and override Microsoft.EntityFrameworkCore.Storage.RelationalTypeMappingSource.FindMapping(Microsoft.EntityFrameworkCore.Storage.RelationalTypeMappingInfo@)

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalTypeMappingSourceDependencies

Service dependencies parameter class for RelationalTypeMappingSource

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RelationalTypeMappingSourceExtensions

Extension methods for the IRelationalTypeMappingSource class.

RelationalValueBufferFactoryDependencies

Service dependencies parameter class for Microsoft.EntityFrameworkCore.Storage.Internal.TypedRelationalValueBufferFactory.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

RetryLimitExceededException

The exception that is thrown when the action failed more times than the configured limit.

SByteTypeMapping

Represents the mapping between a .NET SByte type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ShortTypeMapping

Represents the mapping between a .NET Int16 type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

StringRelationalTypeMapper

Maps string property types to their corresponding relational database types.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

StringTypeMapping

Represents the mapping between a .NET String type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

TimeSpanTypeMapping

Represents the mapping between a .NET TimeSpan type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

TypedRelationalValueBufferFactoryFactory

Creates instances of the IRelationalValueBufferFactory type. IRelationalValueBufferFactory instances are tied to a specific result shape. This factory is responsible for creating the IRelationalValueBufferFactory for a given result shape.

This factory results in value buffers that use they strongly typed APIs to read back individual values from the underlying DbDataReader.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

TypeMappingSource

The base class for non-relational type mapping starting with version 2.1. Non-relational providers should derive from this class and override Microsoft.EntityFrameworkCore.Storage.TypeMappingSourceBase.FindMapping(Microsoft.EntityFrameworkCore.Storage.TypeMappingInfo@)

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

TypeMappingSourceBase

The base class for non-relational type mapping starting with version 2.1. Non-relational providers should derive from this class and override Microsoft.EntityFrameworkCore.Storage.TypeMappingSourceBase.FindMapping(Microsoft.EntityFrameworkCore.Storage.TypeMappingInfo@)

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

TypeMappingSourceDependencies

Service dependencies parameter class for TypeMappingSourceBase

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Do not construct instances of this class directly from either provider or application code as the constructor signature may change as new dependencies are added. Instead, use this type in your constructor so that an instance will be created and injected automatically by the dependency injection container. To create an instance with some dependent services replaced, first resolve the object from the dependency injection container, then replace selected services using the 'With...' methods. Do not call the constructor at any point in this process.

The service lifetime is Singleton. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

TypeMaterializationInfo

Associates a RelationalTypeMapping with an optional IProperty and an index into the data reader for use when reading and converting values from the database.

UIntTypeMapping

Represents the mapping between a .NET UInt32 type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ULongTypeMapping

Represents the mapping between a .NET UInt64 type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

UntypedRelationalValueBufferFactoryFactory

Creates instances of the IRelationalValueBufferFactory type. IRelationalValueBufferFactory instances are tied to a specific result shape. This factory is responsible for creating the IRelationalValueBufferFactory for a given result shape.

This factory results in value buffers that use the untyped GetValues(Object[]) API to read back individual values from the underlying DbDataReader.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

UShortTypeMapping

Represents the mapping between a .NET UInt16 type and a database type.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Structs

CoreTypeMapping.CoreTypeMappingParameters

Parameter object for use in the CoreTypeMapping hierarchy.

MaterializationContext

Parameter object containing context needed for materialization of an entity.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalCommandParameterObject

A parameter object for the execution methods on RelationalCommand.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

RelationalTypeMapping.RelationalTypeMappingParameters

Parameter object for use in the RelationalTypeMapping hierarchy.

RelationalTypeMappingInfo

Describes metadata needed to decide on a relational type mapping for a property, type, or provider-specific relational type name.

TypeMappingInfo

Describes metadata needed to decide on a type mapping for a property or type.

ValueBuffer

Represents a set of indexed values. Typically used to represent a row of data returned from a database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

Interfaces

IByteArrayRelationalTypeMapper

Determines the type mapping to use for byte array properties.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IDatabase

The main interaction point between a context and the database provider.

This interface is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IDatabaseCreator

Creates and deletes databases for a given database provider.

This interface is typically used by database providers (and other extensions). It is generally not used in application code.

IDatabaseCreatorWithCanConnect

Extends IDatabaseCreator to add CanConnect() methods. This interface will be merged with IDatabaseCreator in EF Core 3.0.

This interface is typically used by database providers (and other extensions). It is generally not used in application code.

IDatabaseFacadeDependencies

Exposes dependencies needed by DatabaseFacade.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IDatabaseFacadeDependenciesAccessor

Provides access to IDatabaseFacadeDependencies for providers and extensions.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IDatabaseProvider

The primary point where a database provider can tell EF that it has been selected for the current context and provide the services required for it to function.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IDatabaseProviderServices

The base set of services required by EF for a database provider to function.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IDbContextTransaction

A transaction against the database.

Instances of this class are typically obtained from BeginTransaction() and it is not designed to be directly constructed in your application code.

IDbContextTransactionManager

Creates and manages the current transaction.

This interface is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IExecutionStrategy

A strategy that is used to execute a command or query against the database, possibly with logic to retry when a failure occurs.

IExecutionStrategyFactory

Factory for IExecutionStrategy instances.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IParameterNameGeneratorFactory

Creates instances of ParameterNameGenerator.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRawSqlCommandBuilder

Creates commands based on raw SQL command text.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRelationalCommand

A command to be executed against a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalCommandBuilder

Builds a command to be executed against a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalCommandBuilderFactory

Creates instances of the IRelationalCommandBuilder class.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRelationalConnection

Represents a connection with a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IRelationalDatabaseCreator

Performs database/schema creation, and other related operations.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IRelationalDatabaseFacadeDependencies

Exposes dependencies needed by DatabaseFacade and its relational extension methods.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IRelationalDatabaseProviderServices

The primary services needed to interact with a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalParameter

A parameter in an IRelationalCommand. Note that this interface just represents a placeholder for a parameter and not the actual value. This is because the same command can be reused multiple times with different parameter values.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalParameterBuilder

Builds a collection of IRelationalParameter.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalTransactionFactory

A factory for creating RelationalTransaction instances.

This type is typically used by database providers It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRelationalTransactionManager

Creates and manages the current transaction for a relational database.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Scoped. This means that each DbContext instance will use its own instance of this service. The implementation may depend on other services registered with any lifetime. The implementation does not need to be thread-safe.

IRelationalTypeMapper

Maps .NET types to their corresponding relational database types.

Note: Use IRelationalTypeMappingSource going forward.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalTypeMappingSource

The relational type mapping interface for EF Core, starting with version 2.1. Type mappings describe how a provider maps CLR types/values to database types/values.

Warning: do not implement this interface directly. Instead, derive from RelationalTypeMappingSource.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRelationalTypeMappingSourcePlugin

Represents a plugin relational type mapping source.

The service lifetime is Singleton and multiple registrations are allowed. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRelationalValueBufferFactory

Creates instances of the ValueBuffer type. An IRelationalValueBufferFactory is tied to a particular result shape and will only create value buffers for that result shape. Instances for different result shapes are created by IRelationalValueBufferFactoryFactory.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

IRelationalValueBufferFactoryFactory

Creates instances of the IRelationalValueBufferFactory type. IRelationalValueBufferFactory instances are tied to a specific result shape. This factory is responsible for creating the IRelationalValueBufferFactory for a given result shape.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

ISqlGenerationHelper

Provides services to help with generation of SQL commands.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IStringRelationalTypeMapper

Maps string property types to their corresponding relational database types.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ITransactionEnlistmentManager

Manages the current Transaction.

This interface is typically used by database providers (and other extensions). It is generally not used in application code.

ITypeMapper

Maps .NET types to their corresponding provider database types.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

ITypeMappingSource

The core type mapping interface for EF Core, starting with version 2.1. Type mappings describe how a provider maps CLR types/values to database types/values.

Warning: do not implement this interface directly. Instead, derive from TypeMappingSourceBase for non-relational providers, or 'RelationalTypeMappingSourceBase' for relational providers.

This type is typically used by database providers (and other extensions). It is generally not used in application code.

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

ITypeMappingSourcePlugin

Represents a plugin type mapping source.

The service lifetime is Singleton and multiple registrations are allowed. This means a single instance of each service is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

Enums

StoreTypePostfix

Indicates which values should be appended to the store type name.