Exemple #1
0
 static QueryFilterAttribute()
 {
     ToFutureMethod =
         ReflectHelper.GetMethodDefinition(() => LinqExtensionMethods.ToFuture <object>(null))
         .GetGenericMethodDefinition();
     ToFutureValueMethod =
         ReflectHelper.GetMethodDefinition(() => LinqExtensionMethods.ToFutureValue <object, object>(null, null))
         .GetGenericMethodDefinition();
     GetCountExpressionMethod = ReflectHelper.GetMethodDefinition <QueryFilterAttribute>(o => o.GetCountExpression <object>())
                                .GetGenericMethodDefinition();
 }
Exemple #2
0
        /// <summary>
        /// Gets the result of the query as an <see cref="IList{T}"/>, but lazily so
        /// that the data-source will not be contacted until the value is retrieved.
        /// </summary>
        /// <returns>The lazy query result.</returns>
        /// <param name="query">The query.</param>
        /// <typeparam name="T">The type of object queried.</typeparam>
        public Lazy <IList <T> > GetLazyList <T>(IQueryable <T> query)
        {
            if (query == null)
            {
                throw new ArgumentNullException(nameof(query));
            }

            if (!(query.Provider is NhQueryProvider))
            {
                throw new ArgumentException($"The query provider must be an instance of {typeof(NhQueryProvider).FullName}.", nameof(query));
            }

            var futureEnumerable = LinqExtensionMethods.ToFuture(query);

            return(new Lazy <IList <T> >(() => futureEnumerable.ToList()));
        }
        public IEnumerable <T> ToFuture <T>(IQueryable <T> queryable)
        {
            var query = LinqExtensionMethods.ToFuture(queryable);

            return(query);
        }