Linq CreateQuery引发异常

时间:2019-03-17 20:22:52

标签: c# linq system.linq.dynamic

当我尝试使用可查询列表的动态查询时,仅对某些Linq函数有例外,如下所示。

这很好(也Select(...)):

string query = @"@0.Where(TControl==""skip"")";
var expression = new ExpressionParser(null, query, new[] { list.AsQueryable() }, null).Parse(null);
var result = list.AsQueryable().Provider.CreateQuery(expression);

这会引发异常(也是First(...)Last(...)):

string query = @"@0.FirstOrDefault(TControl==""skip"")";
var expression = new ExpressionParser(null, query, new[] { list.AsQueryable() }, null).Parse(null);
var result = list.AsQueryable().Provider.CreateQuery(expression);

在最后一行抛出:System.ArgumentException: 'Argument expression is not valid'

我想念什么?我怀疑问题可能是返回类型-第一个是可枚举的,第二个是元素类型。如果是这样,我如何使它们同时工作?

0 个答案:

没有答案