using System.Collections; using System.Linq; using System.Linq.Expressions; namespace ZB.MOM.WW.CBDD.Core.Query; internal class BTreeQueryable : IOrderedQueryable { /// /// Initializes a new queryable wrapper for the specified provider and expression. /// /// The query provider. /// The expression tree. public BTreeQueryable(IQueryProvider provider, Expression expression) { Provider = provider; Expression = expression; } /// /// Initializes a new queryable wrapper for the specified provider. /// /// The query provider. public BTreeQueryable(IQueryProvider provider) { Provider = provider; Expression = Expression.Constant(this); } /// /// Gets the element type returned by this query. /// public Type ElementType => typeof(T); /// /// Gets the expression tree associated with this query. /// public Expression Expression { get; } /// /// Gets the query provider for this query. /// public IQueryProvider Provider { get; } /// public IEnumerator GetEnumerator() { return Provider.Execute>(Expression).GetEnumerator(); } /// IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } }