C# IQueryProvider执行IEnumerable到EnumerableQuery

C# IQueryProvider执行IEnumerable到EnumerableQuery,c#,linq-to-objects,iqueryable,C#,Linq To Objects,Iqueryable,我创建了一个简单的IQueryable: var data = Enumerable.Range(1, 100).Select(i => new TestDto() { Id = i, }).AsQueryable(); TestDto: public class TestDto { public int Id { get; set; } } 尝试执行以下行时: var test = data.Provider.Execute(data.Expression);

我创建了一个简单的IQueryable:

var data = Enumerable.Range(1, 100).Select(i => new TestDto()
{
       Id = i,
}).AsQueryable();
TestDto:

public class TestDto
{
    public int Id { get; set; }
}
尝试执行以下行时:

var test = data.Provider.Execute(data.Expression);
我得到一个例外声明:

Expression of type 
„System.Collections.Generic.IEnumerable`1[Ilc.Tests.QueryAdapter.TestDto]” 
cannot be used for return type 
„System.Linq.EnumerableQuery`1[Ilc.Tests.QueryAdapter.TestDto]”.
我不明白为什么我会得到这个例外。 更奇怪的是,在Visual Studio的调试视图(断点)中,IQueryable
数据
枚举很好。

尝试以下操作:

 var test = data.Provider.Execute<IEnumerable<TestDto>>(data.Expression);
var test=data.Provider.Execute(data.Expression);