public IQueryable <TElement> CreateQuery <TElement>(Expression expression)
 {
     if (_enumerableRootObject == null && FullDbUtility.IsQueryableExpression(expression))
     {
         _queryableExpression = expression;
         return(new FullDbQueryObject <TElement>(this, expression));
     }
     else
     {
         if (_enumerableRootObject == null)
         {
             if (expression is MethodCallExpression m)
             {
                 var args = m.Arguments.ToArray();
                 args[0]    = Expression.Constant(null, typeof(IQueryable <TElement>));
                 expression = m.Update(null, args);
             }
         }
         var temp = new FullDbQueryObject <TElement>(this, expression);
         if (_enumerableRootObject == null)
         {
             _enumerableRootObject = temp;
         }
         return(temp);
     }
 }
 internal FullDbQueryProvider(FullDbQueryObject root)
 {
     _root = root;
 }