源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#反射表达式树模糊搜索示例

  • 时间:2021-07-21 18:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#反射表达式树模糊搜索示例
[u]复制代码[/u] 代码如下:
public static Expression<Func<T, bool>> GetSearchExpression<T>(string SearchString)         {             Expression<Func<T, bool>> filter = null;             if (string.IsNullOrEmpty(SearchString)) return null;             var left = Expression.Parameter(typeof(T), "m");             Expression expression = Expression.Constant(false);             T obj = default(T);             var type = typeof(T);             obj = (T)Activator.CreateInstance(type);            var propertyInfos = type.GetProperties();             foreach (var propertyInfo in propertyInfos)             {                 if (propertyInfo.Name.ToLower() == "id" || propertyInfo.PropertyType == typeof(DateTime)) continue;                 Expression tostring = Expression.Call          (             Expression.Property(left, typeof(T).GetProperty(propertyInfo.Name).Name),            typeof(object).GetMethod("ToString", new Type[] { })          );                 Expression right = Expression.Call                       (                           tostring,                         typeof(string).GetMethod("Contains", new Type[] { typeof(string) }),                         Expression.Constant(SearchString)                       );                 expression = Expression.Or(right, expression);             }             filter = Expression.Lambda<Func<T, bool>>(expression, new[] { left });             return filter;         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部