1
我想要的是,如果我的表達式如'e => e.Name'和值'Brad'我想編寫/修改它爲'e => e.Name.Contain(「Brad」)'或'e => e.Name ==「Brad」'。從表達式<Func <TModel,字符串>>轉換爲表達式<Func <TModel,bool >>
我寫象下面這樣:
public Expression<Func<TModel, bool>> ToBool(Expression<Func<TModel, object>> source, string value)
{
ParameterExpression paramExpression = Expression.Parameter(typeof(TModel), "u");
ConstantExpression valueExpression = Expression.Constant(value, typeof(string));
BinaryExpression equalValue = Expression.MakeBinary(ExpressionType.Equal, source.Body, valueExpression);
Expression<Func<TModel, bool>> lambdaResult = Expression.Lambda<Func<TModel, bool>>(equalValue, new ParameterExpression[] { paramExpression });
return lambdaResult;
}
我不斷收到錯誤的查詢被觸發時「來查詢實體表達ü沒有在指定的LINQ綁定的參數」。
請您指出我在這裏做錯了什麼?
非常感謝您的幫助
它的工作原理!感謝您節省這個初學者! ;) – user2349247