public DemoQueryableImp(IDemoQueryProvider queryProvider, Expression expression)
 {
     _queryProvider = queryProvider ?? throw new ArgumentException("can not be null", nameof(queryProvider));
     _expression    = expression ?? throw new ArgumentException("can not be null", nameof(expression));
 }
 public DemoQueryableImp(IDemoQueryProvider queryProvider)
 {
     _queryProvider = queryProvider;
     _expression    = Expression.Constant(this, typeof(IDemoQueryable <T>));
 }