using AsbCloudDb.Model; using Microsoft.EntityFrameworkCore; using System; using System.Linq; namespace AsbCloudInfrastructure.Repository; public class QueryContainer<TEntity> where TEntity : class, IId { protected readonly IAsbCloudDbContext dbContext; protected readonly DbSet<TEntity> dbSet; protected readonly Func<IQueryable<TEntity>> GetQuery; public QueryContainer(IAsbCloudDbContext context) { dbContext = context; dbSet = context.Set<TEntity>(); GetQuery = () => dbSet; } public QueryContainer(IAsbCloudDbContext context, Func<DbSet<TEntity>, IQueryable<TEntity>> makeQuery) { dbContext = context; dbSet = context.Set<TEntity>(); GetQuery = () => makeQuery(dbSet); } }