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>)
Initializes a new instance of the FetchFromEntityFrameworkQueryHandler<TQuery, TDbContext, TEntity, TResult, TSelector> class.
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
TDbContextDatabase 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
CancellationTokenCancellation 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
TQueryMediatR 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
TQueryThe request
cancellationToken
CancellationTokenCancellation token
Returns
- Task<TResult>
Response from the request