IQueryProvider 执行 IEnumerable 到 EnumerableQuery
IQueryProvider Execute IEnumerable to EnumerableQuery
我创建了一个简单的 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 data
枚举就好了。
试试这个:
var test = data.Provider.Execute<IEnumerable<TestDto>>(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 data
枚举就好了。
试试这个:
var test = data.Provider.Execute<IEnumerable<TestDto>>(data.Expression);