public QueryFilter(AliasQueryFilterContext ownerFilterContext, Func <IQueryable <T>, IQueryable <T> > filter) #endif { ElementType = typeof(T); Filter = filter; OwnerFilterContext = ownerFilterContext; }
/// <summary>Makes a deep copy of this filter.</summary> /// <param name="filterContext">The filter context that owns the filter copy.</param> /// <returns>A copy of this filter.</returns> public override AliasBaseQueryFilter Clone(AliasQueryFilterContext filterContext) { #if EF6 return(new QueryDbSetFilter <T>(filterContext, Filter)); #else return(new QueryFilter <T>(filterContext, Filter)); #endif }
/// <summary>Adds or get the filter context associated with the context.</summary> /// <param name="context">The context associated with the filter context.</param> /// <returns>The filter context associated with the context.</returns> public static AliasQueryFilterContext AddOrGetFilterContext(DbContext context) { AliasQueryFilterContext filterContext; if (!CacheWeakFilterContext.TryGetValue(context, out filterContext)) { filterContext = new AliasQueryFilterContext(context); CacheWeakFilterContext.Add(context, filterContext); } return(filterContext); }
/// <summary>Adds or gets the generic filter context associated with the context.</summary> /// <param name="context">The context associated to the filter context.</param> /// <returns>The generic filter context associated with the context.</returns> public static AliasQueryFilterContext AddOrGetGenericFilterContext(DbContext context) { var key = context.GetType().FullName; AliasQueryFilterContext filterContext; if (!CacheGenericFilterContext.TryGetValue(key, out filterContext)) { lock (GenericFilterContextLock) { if (!CacheGenericFilterContext.TryGetValue(key, out filterContext)) { filterContext = new AliasQueryFilterContext(context, true); CacheGenericFilterContext.Add(key, filterContext); } } } return(filterContext); }
/// <summary>Constructor.</summary> /// <param name="ownerFilterContext">The context that owns his filter.</param> /// <param name="filter">The filter.</param> #if EF6 public QueryDbSetFilter(AliasQueryFilterContext ownerFilterContext, Func <IQueryable <T>, IQueryable <T> > filter)
/// <summary>Makes a deep copy of this filter.</summary> /// <param name="filterContext">The filter context that owns the filter copy.</param> /// <returns>A copy of this filter.</returns> public virtual AliasBaseQueryFilter Clone(AliasQueryFilterContext filterContext) { throw new Exception(ExceptionMessage.GeneralException); }