我想从字符串参数构建LINQ查询。 我在Silverlight中有一个网格,我想按列过滤查询结果。
当用户点击其中一个网格列上的按钮时,将显示列表视图。 他们在列表视图中选择一个或多个值,然后单击过滤器按钮。 在代码中,我得到选定的值和列成员,它是我绑定到网格的对象的属性。
例如,我有一个具有FullName属性的员工对象。所以我将FullName属性作为字符串和过滤器中的选定值。
我想根据这些信息构建LINQ查询。
我能做到:
protected Expression<Func<T, bool>> CreateGetExpression<T>(int id)
{
ParameterExpression e = Expression.Parameter(typeof(T), "e");
PropertyInfo propInfo = typeof(T).GetProperty(KeyPropertyName);
MemberExpression m = Expression.MakeMemberAccess(e, propInfo);
ConstantExpression c = Expression.Constant(id, typeof(int));
BinaryExpression b = Expression.Equal(m, c);
Expression<Func<T, bool>> lambda = Expression.Lambda<Func<T, bool>>(b, e);
return lambda;
}
我的问题是当我有一个复杂的属性。例如,我有一个列,其中包含员工工作的部门名称。
LINQ中的查询如下所示(e =&gt; e.Department.Name == departmentName)
但我不知道如何从字符串参数构建此查询。
任何人都可以帮助我?