Table of Contents

Namespace Microsoft.EntityFrameworkCore.Storage

Classes

BoolTypeMapping

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

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.

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.

DbContextTransactionExtensions

Extension methods for Microsoft.EntityFrameworkCore.Storage.IDbContextTransaction.

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.

FloatTypeMapping

Represents the mapping between a .NET float 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.

IntTypeMapping

Represents the mapping between a .NET int 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 long type and a database type.

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

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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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.

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.

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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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.

RelationalExecutionStrategyExtensions

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

RelationalExecutionStrategyFactory

Factory for creating Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy instances for use with relational database providers.

The service lifetime is Scoped. This means that each Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

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 FindMapping(in 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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 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 Microsoft.EntityFrameworkCore.DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

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 short type and a database type.

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.

TypeMaterializationInfo

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

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 Microsoft.EntityFrameworkCore.DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

UIntTypeMapping

Represents the mapping between a .NET uint 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 ulong type and a database type.

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 ushort 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

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.

Interfaces

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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.Infrastructure.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 Microsoft.EntityFrameworkCore.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.

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.

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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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.

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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

IRelationalValueBufferFactory

Creates instances of the Microsoft.EntityFrameworkCore.Storage.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 Microsoft.EntityFrameworkCore.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 Microsoft.EntityFrameworkCore.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.