【发布时间】:2013-05-07 15:05:33
【问题描述】:
我有一系列对象,它们都具有相似的属性,即它们所属组的 Id 列表(每个孩子有许多父母)。
我无法以编程方式实现使此过滤器正常工作所需的 Linq 表达式。
这是我目前所拥有的:
IQueryable result = null;
if (!string.IsNullOrWhiteSpace(this.ddlRouteNames.SelectedValue))
{
ConstantExpression ce = Expression.Constant(int.Parse(this.ddlRouteNames.SelectedValue));
ParameterExpression pe = Expression.Parameter(source.ElementType);
MemberExpression me = Expression.Property(pe, this.Column.Name);
MethodCallExpression mce = Expression.Call(typeof(List<int>), "Contains", new[] { typeof(int) }, me, ce);
result = source.Provider.CreateQuery(mce);
}
return result;
我在尝试创建 MethodCallExpression 时遇到异常:
类型“System.Collections.Generic.List`1[System.Int32]”上不存在方法“包含”。
任何关于从哪里开始的指针?
【问题讨论】:
-
我很困惑,你在your previous question 中几乎是正确的。
-
在这个问题中,方法是静态的。
-
其他问题在我尝试创建查询时导致异常:“Argument expression does not implement System.Linq.IQueryable`1[System.Boolean].”
标签: c# asp.net dynamic-data linq-expressions