Table of Contents

Class FetchFromEntityFrameworkQueryHandler<TQuery, TDbContext, TEntity, TResult, TSelector>

Namespace
Whipstaff.MediatR.EntityFrameworkCore
Assembly
Whipstaff.MediatR.EntityFrameworkCore.dll

MediatR request handler for acting on an entity framework dbset.

public abstract class FetchFromEntityFrameworkQueryHandler<TQuery, TDbContext, TEntity, TResult, TSelector> : IQueryHandler<TQuery, TResult?>, IRequestHandler<TQuery, TResult?> where TQuery : IQuery<TResult?> where TDbContext : DbContext where TEntity : class

Type Parameters

TQuery

The type for the MediatR Query.

TDbContext

The type for the Entity Framework DB Context.

TEntity

The type for the POCO object.

TResult

The type for the Result.

TSelector

The type for POCO object used in the per row selection.

Inheritance
FetchFromEntityFrameworkQueryHandler<TQuery, TDbContext, TEntity, TResult, TSelector>
Implements
IQueryHandler<TQuery, TResult>
IRequestHandler<TQuery, TResult>
Derived
Inherited Members

Constructors

FetchFromEntityFrameworkQueryHandler(IDbContextFactory<TDbContext>)

protected FetchFromEntityFrameworkQueryHandler(IDbContextFactory<TDbContext> dbContextFactory)

Parameters

dbContextFactory IDbContextFactory<TDbContext>

The factory for the database context.

Methods

ExtendQueryable(IQueryable<TEntity>)

Allows extension of the query, for example to add includes.

protected abstract IQueryable<TEntity> ExtendQueryable(IQueryable<TEntity> queryable)

Parameters

queryable IQueryable<TEntity>

queryable to extend.

Returns

IQueryable<TEntity>

Modified queryable, or original queryable if not modifying.

GetDbSet(TDbContext)

Gets the DBSet from the DBContext that contains the relevant entity.

protected abstract DbSet<TEntity> GetDbSet(TDbContext dbContext)

Parameters

dbContext TDbContext

Database Context.

Returns

DbSet<TEntity>

DBSet from the DBContext that contains the relevant entity.

GetResultAsync(IQueryable<TSelector?>, CancellationToken)

Gets the result from the query.

protected abstract Task<TResult?> GetResultAsync(IQueryable<TSelector?> queryable, CancellationToken cancellationToken)

Parameters

queryable IQueryable<TSelector>

Query to process.

cancellationToken CancellationToken

Cancellation token.

Returns

Task<TResult>

Result from query.

GetSelector()

Gets the Selector for the result output from the query.

protected abstract Expression<Func<TEntity, TSelector?>> GetSelector()

Returns

Expression<Func<TEntity, TSelector>>

Selector for the result output from the query.

GetWherePredicate(TQuery)

Gets the Where predicate for the query.

protected abstract Expression<Func<TEntity, bool>> GetWherePredicate(TQuery request)

Parameters

request TQuery

MediatR request.

Returns

Expression<Func<TEntity, bool>>

Where predicate for the query.

Handle(TQuery, CancellationToken)

Handles a request

public Task<TResult?> Handle(TQuery request, CancellationToken cancellationToken)

Parameters

request TQuery

The request

cancellationToken CancellationToken

Cancellation token

Returns

Task<TResult>

Response from the request