我想創建傳遞Expression<Func<T, string>
類型的表達式來創建Expression<Func<T, bool>>
類型的表達爲字符串屬性與StartsWith
,EndsWith
和Contains
過濾器的方法這樣的表述方法:創建StartsWith,的endsWith LINQ表達式和包含傳遞一個表達<Func鍵<T, string>>
.Where(e => e.MiProperty.ToUpper().StartsWith("ABC"));
.Where(e => e.MiProperty.ToUpper().EndsWith("XYZ"));
.Where(e => e.MiProperty.ToUpper().Contains("MNO"));
的方法應該是這樣的:
public Expression<Func<T, bool>> AddFilterToStringProperty<T>(Expresssion<Func<T, string>> pMyExpression, string pFilter, FilterType pFiltertype)
其中過濾式@dtb
public static Expression<Func<T, bool>> AddFilterToStringProperty<T>(
Expression<Func<T, string>> expression, string filter, FilterType type)
{
return Expression.Lambda<Func<T, bool>>(
Expression.Call(
expression.Body,
type.ToString(),
null,
Expression.Constant(filter)),
expression.Parameters);
}
去吧。讓我們知道您嘗試了什麼,如果它不起作用,我們將很樂意提供幫助。 – drdwilcox