我如何从字符串中创建动态lambda表达式?

我需要在我的方法中使用Lambda Expression

public static class QueryableDynamicExtension { public static IQueryable DynamicEquals( this IQueryable query, string field, object value) { Expression<Func> expr = ??? return query.Where(expr); } } 

在这个方法中,我希望它返回相同

 IQueryable
articles = new ModelDataContext().Articles.Where(m => m.CategoryId == 5); // I want replace by IQueryable
articles = new ModelDataContext().Articles.DynamicEquals("CategoryId", 5);

在这种情况下我应该如何构建“expr”? 请帮忙。

你可以查看动态LINQ库,这是由Scott Gu在这里写的 。 我以前使用过这个,我已经为工作构建了一个基于规则的产品系统,并使用了存储在我们数据库层中的动态表达式来提供额外的表达式来过滤掉产品集。