// Keep this constructor protected to avoid creation from outside
        protected QueryableDataModelCollection(PnPContext context, IDataModelParent parent, string memberName = null)
        {
            var queryService = new DataModelQueryService <TModel>(context, parent, memberName);

            provider   = new DataModelQueryProvider <TModel>(queryService);
            Expression = Expression.Constant(this);
        }
 /// <summary>
 /// Creates a new instance of the IQueryProvider based on an external Query Service
 /// </summary>
 /// <param name="queryService"></param>
 public DataModelQueryProvider(DataModelQueryService <TModel> queryService)
 {
     this.queryService = queryService ?? throw new ArgumentNullException(nameof(queryService));
 }