【发布时间】:2015-04-22 01:29:43
【问题描述】:
正如标题所述,我想使用 propertyInfo 和一个值构建一个动态表达式。
目前我有这样的东西
public static IQueryable<T> WhereValueEquals<T>(this IQueryable<T> q, FieldFor fieldFor, string fieldValue)
where T : ModuleData
{
switch (fieldFor)
{
case FieldFor.Name:
return q.Where(e => e.Name == fieldValue);
case FieldFor.Reference:
return q.Where(e => e.Reference == fieldValue);
case FieldFor.Text0:
return q.Where(e => e.Reference == fieldValue);
default:
return q;
}
}
现在案例陈述只会越来越长,但在开发的早期阶段这很好。
现在,使用 FieldFor 枚举,我可以使用我已经编写的扩展来获取 propertyInfo。那么如何使用传入的字符串值和 propertyInfo 从 WhereValueEquals 返回一个 IQueryable
目前为止
public static IQueryable<T> WhereValueEquals<T>(this IQueryable<T> q, FieldFor fieldFor, string fieldValue)
where T : ModuleData
{
PropertyInfo propertyInfo = typeof(T).GetFieldProperties().GetPropertyByFieldFor(fieldFor);
//return q.Where(expression);
}
【问题讨论】:
标签: c# asp.net .net linq linq-to-entities