Table of Contents

Class QueryContextDependencies

Namespace
Microsoft.EntityFrameworkCore.Query
Assembly
Microsoft.EntityFrameworkCore.dll

Service dependencies parameter class for QueryContext

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

public sealed record QueryContextDependencies : IEquatable<QueryContextDependencies>
Inheritance
QueryContextDependencies
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

QueryContextDependencies(ICurrentDbContext, IExecutionStrategy, IConcurrencyDetector, IExceptionDetector, IDiagnosticsLogger<Command>, IDiagnosticsLogger<Query>)

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 QueryContextDependencies(ICurrentDbContext currentContext, IExecutionStrategy executionStrategy, IConcurrencyDetector concurrencyDetector, IExceptionDetector exceptionDetector, IDiagnosticsLogger<DbLoggerCategory.Database.Command> commandLogger, IDiagnosticsLogger<DbLoggerCategory.Query> queryLogger)

Parameters

currentContext ICurrentDbContext
executionStrategy IExecutionStrategy
concurrencyDetector IConcurrencyDetector
exceptionDetector IExceptionDetector
commandLogger IDiagnosticsLogger<DbLoggerCategory.Database.Command>
queryLogger IDiagnosticsLogger<DbLoggerCategory.Query>

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

CommandLogger

The command logger.

public IDiagnosticsLogger<DbLoggerCategory.Database.Command> CommandLogger { get; init; }

Property Value

IDiagnosticsLogger<DbLoggerCategory.Database.Command>

ConcurrencyDetector

Gets the concurrency detector.

public IConcurrencyDetector ConcurrencyDetector { get; init; }

Property Value

IConcurrencyDetector

CurrentContext

The cache being used to store value generator instances.

public ICurrentDbContext CurrentContext { get; init; }

Property Value

ICurrentDbContext

ExceptionDetector

Gets the exception detector.

public IExceptionDetector ExceptionDetector { get; init; }

Property Value

IExceptionDetector

ExecutionStrategy

The execution strategy.

public IExecutionStrategy ExecutionStrategy { get; init; }

Property Value

IExecutionStrategy

QueryLogger

A query logger.

public IDiagnosticsLogger<DbLoggerCategory.Query> QueryLogger { get; init; }

Property Value

IDiagnosticsLogger<DbLoggerCategory.Query>

StateManager

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 IStateManager StateManager { get; }

Property Value

IStateManager

Methods

Equals(QueryContextDependencies?)

public bool Equals(QueryContextDependencies? other)

Parameters

other QueryContextDependencies

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 QueryContextDependencies <Clone>$()

Returns

QueryContextDependencies

Operators

operator ==(QueryContextDependencies?, QueryContextDependencies?)

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

Parameters

left QueryContextDependencies
right QueryContextDependencies

Returns

bool

operator !=(QueryContextDependencies?, QueryContextDependencies?)

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

Parameters

left QueryContextDependencies
right QueryContextDependencies

Returns

bool