Table of Contents

Class StateManagerDependencies

Namespace
Microsoft.EntityFrameworkCore.ChangeTracking.Internal
Assembly
Microsoft.EntityFrameworkCore.dll

Service dependencies parameter class for StateManager

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

public sealed record StateManagerDependencies : IEquatable<StateManagerDependencies>
Inheritance
StateManagerDependencies
Implements
Inherited Members

Remarks

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 C# 'with' operator. 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.

Constructors

StateManagerDependencies(IInternalEntityEntrySubscriber, IInternalEntityEntryNotifier, IValueGenerationManager, IModel, IDatabase, IConcurrencyDetector, ICurrentDbContext, IEntityFinderSource, IDbSetSource, IEntityMaterializerSource, IExecutionStrategy, ICoreSingletonOptions, ILoggingOptions, IDiagnosticsLogger<Update>, IDiagnosticsLogger<ChangeTracking>, INavigationFixer, IInterceptors)

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

[EntityFrameworkInternal]
public StateManagerDependencies(IInternalEntityEntrySubscriber internalEntityEntrySubscriber, IInternalEntityEntryNotifier internalEntityEntryNotifier, IValueGenerationManager valueGenerationManager, IModel model, IDatabase database, IConcurrencyDetector concurrencyDetector, ICurrentDbContext currentContext, IEntityFinderSource entityFinderSource, IDbSetSource setSource, IEntityMaterializerSource entityMaterializerSource, IExecutionStrategy executionStrategy, ICoreSingletonOptions coreSingletonOptions, ILoggingOptions loggingOptions, IDiagnosticsLogger<DbLoggerCategory.Update> updateLogger, IDiagnosticsLogger<DbLoggerCategory.ChangeTracking> changeTrackingLogger, INavigationFixer navigationFixer, IInterceptors interceptors)

Parameters

internalEntityEntrySubscriber IInternalEntityEntrySubscriber
internalEntityEntryNotifier IInternalEntityEntryNotifier
valueGenerationManager IValueGenerationManager
model IModel
database IDatabase
concurrencyDetector IConcurrencyDetector
currentContext ICurrentDbContext
entityFinderSource IEntityFinderSource
setSource IDbSetSource
entityMaterializerSource IEntityMaterializerSource
executionStrategy IExecutionStrategy
coreSingletonOptions ICoreSingletonOptions
loggingOptions ILoggingOptions
updateLogger IDiagnosticsLogger<DbLoggerCategory.Update>
changeTrackingLogger IDiagnosticsLogger<DbLoggerCategory.ChangeTracking>
navigationFixer INavigationFixer
interceptors IInterceptors

Remarks

Do not call this constructor directly from either provider or application code as it 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 C# 'with' operator. Do not call the constructor at any point in this process.

Properties

ChangeTrackingLogger

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IDiagnosticsLogger<DbLoggerCategory.ChangeTracking> ChangeTrackingLogger { get; init; }

Property Value

IDiagnosticsLogger<DbLoggerCategory.ChangeTracking>

ConcurrencyDetector

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IConcurrencyDetector ConcurrencyDetector { get; init; }

Property Value

IConcurrencyDetector

CoreSingletonOptions

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public ICoreSingletonOptions CoreSingletonOptions { get; init; }

Property Value

ICoreSingletonOptions

CurrentContext

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public ICurrentDbContext CurrentContext { get; init; }

Property Value

ICurrentDbContext

Database

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IDatabase Database { get; init; }

Property Value

IDatabase

EntityFinderSource

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

[EntityFrameworkInternal]
public IEntityFinderSource EntityFinderSource { get; init; }

Property Value

IEntityFinderSource

EntityMaterializerSource

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IEntityMaterializerSource EntityMaterializerSource { get; init; }

Property Value

IEntityMaterializerSource

ExecutionStrategy

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IExecutionStrategy ExecutionStrategy { get; init; }

Property Value

IExecutionStrategy

Interceptors

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IInterceptors Interceptors { get; }

Property Value

IInterceptors

InternalEntityEntryNotifier

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IInternalEntityEntryNotifier InternalEntityEntryNotifier { get; init; }

Property Value

IInternalEntityEntryNotifier

InternalEntityEntrySubscriber

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IInternalEntityEntrySubscriber InternalEntityEntrySubscriber { get; init; }

Property Value

IInternalEntityEntrySubscriber

LoggingOptions

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public ILoggingOptions LoggingOptions { get; init; }

Property Value

ILoggingOptions

Model

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IModel Model { get; init; }

Property Value

IModel

NavigationFixer

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public INavigationFixer NavigationFixer { get; init; }

Property Value

INavigationFixer

SetSource

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

[EntityFrameworkInternal]
public IDbSetSource SetSource { get; init; }

Property Value

IDbSetSource

UpdateLogger

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IDiagnosticsLogger<DbLoggerCategory.Update> UpdateLogger { get; init; }

Property Value

IDiagnosticsLogger<DbLoggerCategory.Update>

ValueGenerationManager

This is an internal API that supports the Entity Framework Core infrastructure and not subject to the same compatibility standards as public APIs. It may be changed or removed without notice in any release. You should only use it directly in your code with extreme caution and knowing that doing so can result in application failures when updating to a new Entity Framework Core release.

public IValueGenerationManager ValueGenerationManager { get; init; }

Property Value

IValueGenerationManager

Methods

Equals(StateManagerDependencies?)

public bool Equals(StateManagerDependencies? other)

Parameters

other StateManagerDependencies

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToString()

public override string ToString()

Returns

string

<Clone>$()

public StateManagerDependencies <Clone>$()

Returns

StateManagerDependencies

Operators

operator ==(StateManagerDependencies?, StateManagerDependencies?)

public static bool operator ==(StateManagerDependencies? left, StateManagerDependencies? right)

Parameters

left StateManagerDependencies
right StateManagerDependencies

Returns

bool

operator !=(StateManagerDependencies?, StateManagerDependencies?)

public static bool operator !=(StateManagerDependencies? left, StateManagerDependencies? right)

Parameters

left StateManagerDependencies
right StateManagerDependencies

Returns

bool