我正在尝试使用此示例以动态方式将表字段名称传递给查询,并避免对每个表字段重复频繁的查询操作。
示例中包含并根据需要编辑的代码如下:
Expression<Func<T, bool>> GreatherThan<T>(string field, string value)
{
ParameterExpression B = Expression.Parameter(typeof(T));
return Expression.Lambda<Func<T, bool>>(
Expression.GreaterThan(
Expression.PropertyOrField(B, field),
Expression.Constant(value)),
B);
}
它适用于数字字段,因为它在Expression我对数字字段(等于、不等于、大于/小于等)所需的每个操作中都有作用。
但似乎没有对字符串的操作,Contains或者类似的。(当然,除了Equal和NotEqual。)
我怎样才能实现以下目标?(现在在语法上是错误的,但它是用于示例目的)
Expression<Func<T, bool>> Contains<T>(string field, string value)
{
ParameterExpression B = Expression.Parameter(typeof(T));
return Expression.Lambda<Func<T, bool>>(
Expression.Contains(
Expression.PropertyOrField(B, field),
Expression.Constant(value)),
B);
}
相关分类