C# 在IQueryProvider实现中构造Linq.EnumerableQuery时出现编译器错误

C# 在IQueryProvider实现中构造Linq.EnumerableQuery时出现编译器错误,c#,linq,generics,compiler-errors,iqueryprovider,C#,Linq,Generics,Compiler Errors,Iqueryprovider,我有一个IQueryProvider的实现,并有以下方法: public override IQueryable<T> CreateQuery<T>(System.Linq.Expressions.Expression expression) { return new System.Linq.EnumerableQuery<T>(this.Items); } 公共覆盖IQueryable CreateQuery(System.

我有一个IQueryProvider的实现,并有以下方法:

public override IQueryable<T> CreateQuery<T>(System.Linq.Expressions.Expression expression)
    {
        return new System.Linq.EnumerableQuery<T>(this.Items);
    }
公共覆盖IQueryable CreateQuery(System.Linq.Expressions.Expression)
{
返回新的System.Linq.EnumerableQuery(this.Items);
}
items属性定义为

public IEnumerable<T> Items { get; set; }
public IEnumerable Items{get;set;}
我得到EnumerableQuery构造函数的一个神秘编译器错误:

> Argument 1: cannot convert from
> 'System.Collections.Generic.IEnumerable<T>
> [c:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll]' to
> 'System.Collections.Generic.IEnumerable<T>> [c:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll]'
>参数1:无法从转换
>'System.Collections.Generic.IEnumerable
>[c:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll]“到”
>'System.Collections.Generic.IEnumerable>[c:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll]'

我做错了什么?我知道它很可能在某个地方被封装在泛型中,但在我看来,参数是一样的

问题在于您的方法声明:

public override IQueryable<T> CreateQuery<T>(Expression expression)
(顺便说一句,如果您使用适当的
指令来避免在代码中包含这么多完全限定的类型名,那么代码将更易于使用。)

public override IQueryable<T> CreateQuery(Expression expression)