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(); }
/// <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); }